UIScrollView“框架外”触摸区域没有响应

Posted

技术标签:

【中文标题】UIScrollView“框架外”触摸区域没有响应【英文标题】:UIScrollView "out of frame" touch areas don't respond 【发布时间】:2015-05-15 18:00:58 【问题描述】:

我正在创建一个UIScrollView,比如(320, 320),原点(0, 400)。假设现在我正在为 iPhone 5S 设计,高度为568pts

这意味着我的滚动视图的底部没有出现在ViewControllerview 中,因为它太高了。

稍后,我将整个 ViewController view.frame 向上移动 ~152pts,让我们完全显示 scrollView 及其之前隐藏的高度。

问题:即使滚动视图现在完全可见,隐藏的部分对触摸没有响应。然而,始终可见的上半部分功能正常。

关于发生了什么以及如何解决它的任何想法?谢谢

【问题讨论】:

【参考方案1】:

根据您提供的信息,您将整个 view.frame 向上移动 152 pts,但视图的大小保持不变。您还应该将其高度增加 152 分。

发生这种情况是因为隐藏的滚动视图部分仍在 view.frame 的边界之外绘制。

如果您的框架的默认高度为 568,则您的滚动视图将从 y 400 绘制到 y 720。这意味着隐藏的部分正好是 152,正如您所说。问题是,您将 scrollView 的父级向上移动 152,但 view.frame 的高度仍然为 568,并且 scrollView 仍将在位置 400(相对于 view.frame)处绘制,并延伸到 720 ,距离 view.frame 仍有 152 个点。

如果此 viewController 不是任何其他 viewController 的 childViewController,我建议您只将 scrollView 本身向上移动,以避免此类问题。

【讨论】:

以上是关于UIScrollView“框架外”触摸区域没有响应的主要内容,如果未能解决你的问题,请参考以下文章

UIScrollView下的UIButton没有响应触摸

UIScrollView 的一部分不响应触摸

子类 UIScrollView 检测按钮内的触摸,但对用户交互无响应

UIScrollView 在 4 英寸上工作,在 3.5 英寸上不响应任何触摸

在Scroll View的高度动画后,UIScrollView的子视图不响应触摸

UIScrollView中的UITableView在滚动后没有响应第一次点击