簡體   English   中英

GestureRecogniser並在UIScrollView中禁用UIView的拖動手勢

[英]GestureRecogniser and disabling drag gesture of a UIView in a UIScrollView

最近我遇到了問題。 如何禁用UIScrollView的特定區域中的滾動,尤其是UIView或子視圖占用的區域。 我已經了解了很多關於子類化和其他長方法來解決這個問題。 但最近我在沒有子類化的情況下以簡單的方式解決了這個問題:

UIPanGestureRecognizer *panrecognizer = [[UIPanGestureRecognizer alloc] init];

接着

[panrecognizer setCancelsTouchesinView:NO];
[mySubViewInScroll addGestureRecognizer:panrecognizer];

我創建了UIPanGestureRecognizer而沒有傳遞給它的Action,然后將識別器添加到滾動條中的視圖。 以這種方式,視圖上的手勢將被捕獲,但明確地不由視圖或超級視圖處理,因為我們傳遞給對象沒有Action。 問題是這個。 這是處理此類問題的正確方法,還是最好不要這樣做。 我的意思是Apple會用這種方法接受這種應用嗎?

嘗試重寫ScrollView的

-(UIView *)hitTest:(CGPoint)point withEvent:(UIEvent *)event

返回chi

實際上我認為,即使不是最好的也是最實用的解決方案。因為亂搞類和子類只能實現屏幕的部分滾動鎖定似乎很奇怪。 那么讓我們看看Apple是否會接受這種解決方案......

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM