問題描述
我使用 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 中取消滾動的文章就介紹到這了,希望我們推薦的答案對大家有所幫助,也希望大家多多支持html5模板網!