问题描述
我使用 UIScrollView 在 iPhone 上制作大尺寸(大于 320 像素)的 UI.
I use UIScrollView to make large-sized (larger than 320px) UI on iPhone.
我创建了一个 UIScrollView 实例并在其上添加了一些子视图.问题是我只想在用户触摸子视图之外时启用滚动,当用户触摸其中一个子视图时停止滚动.
I made an instance of UIScrollView and added some subviews on it. The problem is that I want to enable scrolling only when user touches outside of subviews, stop scrolling when user touches one of subviews.
我阅读了文档并尝试查找示例,但找不到好的提示.如果您有任何想法,请帮助我.
I read documents and tried to find samples but I can't find good hint. If you have any idea, please help me.
推荐答案
如果你想检测 UIScrollView 的任何子视图内的触摸,你必须继承 UIScrollView 并覆盖 touchesShouldBegin
和touchesShouldCancelInContentView
专门为此目的创建的方法.
If you want to detect touches inside any of the subviews of the UIScrollView, you will have to subclass UIScrollView and override the touchesShouldBegin
and touchesShouldCancelInContentView
methods which are specifically created for this purpose.
除此之外,您无法识别子视图中的触摸,因为 UIScrollView 倾向于自行处理所有触摸并且不会将它们传递给其子视图.
Other than this, there is no way you can identify touches in the subviews as UIScrollView tends to handle all touches itself and doesn't pass them to its subviews.
一切顺利.
这篇关于如何在 UIScrollView 中取消滚动的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持跟版网!