我有兩個嵌套的UIScrollViews:父級限於水平分頁,孩子限於垂直滾動。內容是一個可以自由拖拽的大視圖,但會捕捉到三個水平部分之一。嵌套滾動視圖的默認行爲是隻允許一次向一個方向滾動,但我希望允許同時拖動兩個方向以保持操縱單個大視圖的感覺。嵌套的UIScrollViews同時滾動
我的本解決方案涉及分離的垂直滾動視圖的姿勢和它的代表設置爲我的視圖控制器:
for (UIGestureRecognizer *gesture in scrollView.gestureRecognizers)
if ([gesture isKindOfClass:[UIPanGestureRecognizer class]])
gesture.delegate = self;
然後,我實現委託方法,以允許尋呼視圖的手勢來與同時識別滾動視圖的平移手勢:
- (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldRecognizeSimultaneouslyWithGestureRecognizer:(UIGestureRecognizer *)otherGestureRecognizer {
if (gestureRecognizer.view == scrollView && otherGestureRecognizer.view == pageView)
return YES; // allow simultaneous scrolling of pageView and scrollView
return NO;
}
該解決方案主要是作品,但它偶爾會充當出問題,當我拖動周圍景觀,尤其是當我用鼠標周圍快速移動,或拖動它周圍的過去視圖範圍。具體來說,其中一個滾動視圖會暫時跳回到開始位置,就好像該手勢已被取消一樣,但如果我繼續滾動,則會跳回。
我想知道的是,如果有一種更簡單或更可靠的方法來實現像我一樣忽略的滾動,或者如果有什麼我可以做,以消除這種不良行爲。
我已經做了類似的事情,我想你,它的作品完美。你是否試圖基本上有一個大面積滾動左右不斷地有頂部和左側區域告訴用戶他們在哪裏? – Rudiger 2010-10-12 22:00:01
不完全;我所展示的是一款MMO遊戲中的三種天賦樹。我不想將每棵樹當作一個獨立的頁面,而是希望允許自由地拖動視圖,但是在釋放拖動時讓它鎖定在其中一棵樹上。我見過其他使用類似行爲的應用,特別是顯示該遊戲天賦樹的WoW Armory應用。 – trevorsm 2010-10-12 23:03:11
好的,小姐理解,如果我想到一些東西,我會稍後回顧 – Rudiger 2010-10-12 23:30:57