【问题标题】:Error: User interaction disabled in lower parts of UIScrollView错误:UIScrollView 下部禁用用户交互
【发布时间】:2015-01-23 19:33:57
【问题描述】:

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

用户可以在滚动视图中手动平移和缩放,但对于某些功能,我正在执行程序化滚动/平移以将文本字段或按钮显示在视图中。

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

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

通常一切都会正常运行。

这就是问题所在:

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

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

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

【问题讨论】:

  • 您是否有任何清晰的视图可能位于滚动视图内容的那部分之上?
  • @Rayfleck 不,但这确实可能导致这种行为,我同意。
  • 如果您使用的是 Xcode 6,请使用视图调试器检查实际情况。
  • @chriszumberge 感谢您的提示我不知道此功能,但视图层次结构似乎没有任何问题

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


【解决方案1】:

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

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

【讨论】:

    【解决方案2】:

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

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

    【讨论】:

      【解决方案3】:

      如果您的 collectionView 超出了 scrollView contentSize,您应该从界面构建器中拖放约束,并且当您更改 collectionView 的位置时,您也应该更改约束常量。这对我有用

      【讨论】:

        猜你喜欢
        • 2012-04-16
        • 1970-01-01
        • 2019-06-17
        • 2012-12-06
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多