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
。
这意味着我的滚动视图的底部没有出现在ViewController
的view
中,因为它太高了。
稍后,我将整个 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 检测按钮内的触摸,但对用户交互无响应
UIScrollView 在 4 英寸上工作,在 3.5 英寸上不响应任何触摸