我在UIScrollView中有一个UITextView(具体来说,文本视图位于表中的UITableViewCell中)。当我输入文本视图并点击返回以创建一些新行(并且文本视图中的文本变得太长而无法垂直包含)时,它会滚动文本视图本身(这是可以的)和包含它的表/表格单元格(我想阻止它)。有没有办法防止这种行为?
答案 0 :(得分:1)
这个问题已经差不多一年了,但它让我疯狂了一段时间。
我终于设法通过继承UITextView
来禁用该行为,覆盖名为scrollRectToVisibleInContainingScrollView
的方法,并且在实现中绝对不执行任何操作。
它是一个UITextView的私有的,未记录的方法,显然可以处理超级视图的自动滚动。由于我们所做的只是进行子类化和重新定义方法(因此不依赖于预先存在的方法),所以它应该是可以接受的。
答案 1 :(得分:0)
对于它的价值,我最终通过在编辑时从UITableViewCell中删除UITextView并将其添加到包含表视图的视图控制器来解决此问题,然后在完成时将其返回到UITableViewCell。 p>
答案 2 :(得分:0)
目前尚不清楚您希望它如何运作。如果您只是需要阻止自动滚动,那么this回答可能有所帮助。当UITextView
的高度增加时,如何获得与标准提醒应用程序类似的行为?我已在TableKit library
答案 3 :(得分:0)
我认为Jonathan M有正确的解决方案(我赞成他)。
我在UITableViewCell中有UITextView,当用户输入文本并且文本超出滚动视图的内容矩形时,偶尔会滚动表格视图。
我使用了一个类别而不是子类。
@interface UITextView (DISABLE_SCROLL_CONTAINING_VIEW)
- (void) scrollRectToVisibleInContainingScrollView;
@end
@implementation UITextView (DISABLE_SCROLL_CONTAINING_VIEW)
- (void) scrollRectToVisibleInContainingScrollView {
return;
}
@end