我有一個UIScrollView,其中只啓用垂直滾動。我正在顯示一個按鈕網格(類似於照片查看器圖像網格)。網格必須根據屏幕方向以不同方式繪製,以便使用所有的屏幕空間。鑑於我的按鈕的大小,我可以縱向放入3行,橫向放入4行。在定向更改期間,UIScrollView在SetContentSize之後自動滾動到頂部 - 我該如何防止該問題?
我重新定位了所有按鈕:willRotateToInterfaceOrientation:duration,然後在我的UIScrollView上調用:setContentSize:。一切似乎都很好,除了在調用SetContentSize之後發生的自動滾動之外:換句話說,假設我處於肖像狀態,並沿着列表的3/4滾動,當我旋轉到橫向時,它會自動將所有背部滾動到頂部。
有趣的是,在相同的情況下,如果我做一個小型輕彈向上或向下滾動,然後立即旋轉設備,滾動視圖會正確重繪,並保留當前滾動位置!
所以,要清楚,這裏的罪魁禍首似乎是SetContentSize :,但顯然我必須調用該滾動視圖才能正確滾動。
關於如何保留當前滾動位置的任何想法?
謝謝!
這沒有按」工作。這與使用相同的效果:scrollView.scrollsToTop = NO;其中,是的,當點擊狀態欄時防止自動滾動到頂部,但是,我在原始問題中描述的行爲仍然存在... – bpatrick100 2011-04-14 17:36:20
另一個想法:在調用'setContentSize:'之前,請記住你的內容,然後在調用之後,調用'setContentOffset:'。在設置內容大小時,內容偏移量可能會有意地重置爲(0,0)。您可能已將內容大小重置爲不再包含內容偏移量在重置大小之前所包含的內容大小。因此,通過確保在內容大小更改後始終顯示某些內容,SDK在某種程度上可能會保護自己和用戶體驗。 – 2011-04-14 17:45:07