错误:在UIScrollView的下半部分禁用了用户交互

时间:2014-11-25 17:16:25

标签: ios objective-c ipad uiscrollview user-interaction

我有一个文档查看器,它有一个UIView(页面)作为UIScrollView的'scrolledView'(UIView)的子视图。该页面包含更多子视图,例如UIButtons和UITextField。

用户可以手动平移和放大滚动视图,但是对于某些功能,我正在进行编程滚动/平移以将文本字段或按钮带入视图。

在某些情况下,我需要以编程方式调整滚动视图的contentSize和滚动视图的框架(以确保页面底部的文本字段可以移动到键盘上方。)

另外(我认为)我正在通过滚动视图的zoomScale正确缩放contentSize的坐标和滚动视图的框架。

通常一切正常。

这是问题所在:

在极少数情况下,在我通过点击键盘上的“下一步”触发缩小后,页面下方的按钮和文本字段不再对我的触摸作出反应。 (它通常在最低的10%左右。)以上的人应该这样做。

有人可以给我任何提示吗?

我在iOS 7和iOS 8上看过这个,我不知道的旧版本。

3 个答案:

答案 0 :(得分:2)

我知道它真的很晚,但它可能会帮助那些有同样问题的人。 我刚刚提出同样的问题,这是唯一与我的问题相匹配的问题。最终我解决了它。

似乎只为框架的指定高度启用了用户交互。所以,我通过增加嵌入在frame下的scrollview的高度来解决它。

答案 1 :(得分:1)

似乎有些问题是由于重新调整- (void)scrollViewDidZoom:(UIScrollView *)scrollView内滚动视图的contentSize和框架引起的,然后其他部分修改了相同的属性,例如在动画的完成块中,这些值可能最终错误

(当用户缩小时我使用了一种技巧来保持内容居中。现在我使用contentInset属性获得相同的效果)

答案 2 :(得分:0)

如果你的collectionView不在scrollView contentSize中,你应该从界面构建器中拖放约束,当你改变collectionView的位置时,你也应该改变约束常量。这对我有用