iphone 始终在 UITextView 中隐藏一些文本

Posted

技术标签:

【中文标题】iphone 始终在 UITextView 中隐藏一些文本【英文标题】:iphone Consistently Hide Some Text in a UITextView 【发布时间】:2009-08-12 05:48:23 【问题描述】:

我有一个 UITextView,我试图对用户隐藏,但我使用的是自动更正界面,所以我不能把它的 hidden 属性设置为 true。

目前我正在放置 contentOffset 以便它隐藏第一行文本,但这并不能始终如一地工作。有时确实如此,有时滚动视图会重新滚动到文本部分可见的位置。它的行为似乎是任意的,因为在不更改任何代码的情况下,行为会在我重建后自行切换......

我尝试关闭 UITextView 的滚动,以及覆盖 UITextView 的 drawRect 函数以不执行任何操作,以及更改 UITextView 的 TextColor 以清除颜色。似乎您无法更改文本颜色的 alpha 值,因此不起作用。

关于如何实现这一目标的任何其他想法? 提前致谢。

【问题讨论】:

【参考方案1】:

也许UIScrollView 正试图了解它自动滚动到的位置,即使您已禁用用户滚动?

您可以尝试操作contentOffset,并查看控制该值是否会阻止不需要的滚动。

另一个帮助调试任何不需要的滚动活动的想法是将调试NSLog 语句添加到UIScrollViewDelegate 的一些关键方法中,例如scrollViewDidScroll:scrollViewShouldScrollToTop:。如果 contentOffset 方法失败,这可能会帮助您了解问题所在,并可能在委托级别阻止它。

顺便说一句,听起来你所做的一般来说有点老套。通过询问你的真正目标,你可能会得到更多中肯的答案(和更简洁的代码)——也许有你自己的拼写检查版本?

【讨论】:

这很 hacky :)。基本上我只想要 UITextView 和 TextFields 自动具有的日语输入的汉字选择界面。但我以多种颜色/大小显示文本,这是 UITextViews 和 Fields 不支持的。所以我使用隐藏的 UITextView 进行输入,这在我需要选择器之前很好,因为我只是将它设置为隐藏。但是现在我需要汉字选择器并且不知道任何现有的 API,我需要隐藏文本同时仍然显示选择器:( 我想过这个问题,但我仍然不确定一个好的解决方案。您是否尝试过使用 UIWebView 代替输入,因为您可以在那里更轻松地更改颜色?根据您的其他问题,我想也许是的。这不是一个好主意,但您可以显示两个视图 - 一个是常规 UITextView,下面是相同文本的彩色视图。用户可以使用按钮来更改彩色区域中的文本外观,即使他们在常规 UITextView 中键入文本本身(黑白)。抱歉,我想不出更好的了。 UIWebView 是我首先尝试的,但它很挑剔,我宁愿在编辑期间不替换所有 html 标签,而且加载时间很烦人。没关系,我有一种绘制文本的好方法,而且我认为使用隐藏的文本视图进行输入并不太老套,只是为了我需要做一些俗气的隐藏内容的日语内容。我发现如果我点击scrollViewDidScroll,我可以在那里重置contentOffset,并添加一个变量,这样它就不会开始递归地进入scrollViewDidScroll ...虽然它可以工作:)谢谢帮助^^

以上是关于iphone 始终在 UITextView 中隐藏一些文本的主要内容,如果未能解决你的问题,请参考以下文章

iPhone:textViewdDidBeginEditing:textview.tag 始终为 0

iPhone - 出现键盘时如何滚动 UITextField 并调整 UITextView 的大小

当键盘出现时,带有大单元格的 UITableViewController 会崩溃,隐藏 UITextView

iOS 7 UITextView 错误

iPhone:滚动时展开 UITextView

在 UITextView 中隐藏 UIMenuController