做一些iPhone開發,使應用程序工作得很好。不過,我有一個UIScrollView,它具有自動調整內容和contentSize的功能,除非當我旋轉到橫向視圖時,它總是在滾動高度上有100多個像素。我不希望用戶能夠滾動到目前爲止的內容。iPhone UIScrollView ContentSize在旋轉/轉換爲風景時有額外的高度
是否有其他人有此問題或知道修復?
在此先感謝,
邁克爾
做一些iPhone開發,使應用程序工作得很好。不過,我有一個UIScrollView,它具有自動調整內容和contentSize的功能,除非當我旋轉到橫向視圖時,它總是在滾動高度上有100多個像素。我不希望用戶能夠滾動到目前爲止的內容。iPhone UIScrollView ContentSize在旋轉/轉換爲風景時有額外的高度
是否有其他人有此問題或知道修復?
在此先感謝,
邁克爾
我經歷了同樣的問題。在我的情況下,我正在循環查看UIScrollView,試圖動態計算它的contentSize。在遍歷子視圖的同時,我在子視圖中找到了兩個神祕的圖像視圖(不是由我添加的),它們一起加起來精確到100像素。事實證明,這兩個圖像實際上是自動添加到滾動視圖的滾動指示器。
我的解決方案是創建一個容器視圖類,我們稱之爲ContainerView,並在其中創建了滾動視圖。
這裏面ContainerView我覆蓋的方法addSubview和willRemoveSubview,像這樣:
- (void)addSubview:(UIView *)view {
[_addedSubviews addObject:view];
[_scrollView addSubview:view];
}
- (void)willRemoveSubview:(UIView *)subview {
[_addedSubviews removeObject:subview];
[_scrollView willRemoveSubview:subview];
}
現在你可以添加一個方法來計算大小。這次我們將遍歷名爲_addedSubviews的數組,而不是scrollviews子視圖,因爲我們知道_addedSubviews中的視圖只是我們添加的視圖。正因爲如此,我們將避免循環滾動指標和whatnot :-)
最後只是循環和計算。
- (CGSize)desiredContentSize {
for(UIView *mySubviews in _addedSubviews) {
// Calculate size
}
// Return size
}
另一種方法是使用自定義類和測試來查看是否他們是你想要的類型(isKindOfClass),但你的方法可能更快地處理 – 2012-04-18 23:16:57
Zath有一個有趣的解決方案。我遇到過類似的情況。
我想說,切換到橫向模式後,您並未更新contentSize,但contentSize應該是相同的,無論如何。諷刺的是,我剛纔遇到了相反的問題。但是,在學習超級視圖之後,必須將autoresizesSubviews設置爲yes,並確保所有4個超級視圖具有相同的resizing屬性,並最終保留「緩衝區」空間。
很多的調整後運行,最終你會得到你想要的東西,除非你想頂部Ÿ點停留在同一地點時,它大於0
是對contentInset屬性設置爲零? – 2010-04-23 01:10:25
是插入是在0 - 我要通過它,並確保我有計算高度的功能是正確的 - 它是我能想到的唯一的東西:P – 2010-04-23 04:51:11