我在UIScrollView中有一个UITextView(具体来说,文本视图位于表中的UITableViewCell中) . 当我输入文本视图并点击返回以创建一些新行(并且文本视图中的文本变得太长而无法垂直包含)时, it scrolls both the text view itself (which is okay) and the table/table cell that contains it (which I would like to prevent) . 有没有办法防止这种行为?
-
UITableView将scrollEnabled设置为NO,但UITextView仍然使其滚动 .
-
我've thought about subclassing UITextView and overriding scrollRectToVisible to do nothing, but I don' t介意文本视图本身滚动,我想阻止它滚动包含视图 .
-
同样,在文本视图上将scrollEnabled设置为NO只会阻止它滚动,而不能阻止它滚动表格/表格单元格 .
-
键盘没有遮挡文本视图,但似乎它仍然想要靠近屏幕顶部 .
4 回答
这个问题差不多已经有一年了,但它让我疯了一会儿 .
我终于设法通过子类化
UITextView
来禁用该行为,重写一个名为scrollRectToVisibleInContainingScrollView
的方法,并且在实现中绝对不做任何事情 .它是一个UITextView的私有的,未记录的方法,显然可以处理超级视图的自动滚动 . 因为我们所做的只是继承和重新定义一个方法(因此不依赖于它预先存在),所以它应该是可以接受的 .
对于它的 Value ,我最终通过在编辑时从UITableViewCell中删除UITextView并将其添加到包含表视图的视图控制器来解决此问题,然后在完成时将其返回到UITableViewCell .
目前尚不清楚您希望它如何运作 . 如果您只是需要阻止自动滚动,那么this答案可能会有所帮助 . 当
UITextView
的高度增加时,如何获得与标准提醒应用程序类似的行为?我在样本中实现了这样的行为TableKit library我认为Jonathan M有正确的解决方案(我赞成他) .
我在UITableViewCell中有UITextView,当用户输入文本并且文本超出滚动视图的内容rect时,偶尔会滚动表视图 .
我使用了一个类别,而不是子类 .