How to Cancel Scrolling in UIScrollView(如何在 UIScrollView 中取消滚动)
问题描述
我使用 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 中取消滚动的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!
本文标题为:如何在 UIScrollView 中取消滚动


基础教程推荐
- Cocos2d iPhone 非矩形精灵触摸检测 2022-01-01
- Android:getLastKnownLocation(LocationManager.NETWORK_PROVIDER 2022-01-01
- 如何从 logcat 中删除旧数据? 2022-01-01
- 通过重定向链接在 Google Play 中打开应用 2022-01-01
- iPhone - 获取给定地点/时区的当前日期和时间并将其与同一地点的另一个日期/时间进行比较的正确方法 2022-01-01
- libGDX 从精灵或纹理中获取像素颜色 2022-01-01
- NSString intValue 不能用于检索电话号码 2022-01-01
- AdMob 广告未在模拟器中显示 2022-01-01
- navigator.geolocation.getCurrentPosition 在 Android 浏览器上 2022-01-01
- iOS4 创建后台定时器 2022-01-01