2011-03-27 35 views
1

我有一個啓用了分頁的UIScrollView,我希望能夠跳到頁面的下一頁,而不是在每一頁中滑動。我試圖使用setContentOffset和scrollRectToVisible。它們都將視圖滾動到正確的位置,但是在滾動動畫之後,滾動視圖變爲凍結並且對任何觸摸都沒有響應。我嘗試將它設置給第一響應者,但它沒有改變。我在滾動視圖之外有一個按鈕,它在setContentOffset之後仍然正常工作。滾動視圖中還有按鈕,不僅滾動視圖不會響應觸摸進行拖動,而且按鈕也不會識別觸摸。UIScrollView在使用SetContentOffset或scrollRectToVisible後會凍結

 [mainScroll setContentOffset:CGPointMake(mainScroll.frame.size.width*4, 0.0) animated:YES]; 

tldr;我可以通過所有頁面滾動瀏覽視圖,但是當我嘗試調用setContentOffset或scrollRectToVisible時,我會在移動之後「凍結」。

+0

我可以看到日誌/輸出嗎? – lbrndnr 2011-03-27 06:27:51

+0

沒有日誌/輸出。該應用程序不會崩潰。當調用setContentOffset時,它似乎只是將UIScrollView變成只能由setContentOffset進一步控制的內容。它可以響應setContentOffset,但它不會響應觸摸UIScrollView,拖動或與其中的項目進行交互。有趣的提示:如果我調用[scrollView flashScrollIndicators],則在調用setContentOffset之後;沒有顯示。 – zzzzzz 2011-03-27 06:56:51

回答

1

我明白了,愚蠢的錯誤。

在我scrollViewDidScroll我有:

scrollView.userInteractionEnabled=NO; 

,並在我的scrollViewDidEndDecelerating

scrollView.userInteractionEnabled=YES; 

和scrollViewDidEndDragging:willDecelerate

if(!decelerate){scrollView.userInteractionEnabled=YES;} 

我有這個,防止按下按鈕和任何隨機在頁面轉換期間的事情。但是,當setContentOffset被調用時,它只會導致scrollViewDidScroll被調用,而另外兩個都不會,所以UserInteraction從未被設置爲Enabled,但僅在使用setContentOffset時纔會被調用。

簡單修復。

+0

也添加http://stackoverflow.com/a/15160174/1067147更改內容大小後 – WINSergey 2016-01-12 16:11:59

相關問題