2012-07-06 118 views
1

在我的代碼中,當UI方向更改爲橫向時,我正在增加contentSizecontentSize的高度,以便所有視圖都適合此處,並且用戶可以滾動以查看它。UIScrollView高度與UIView高度

在我的XIB我有

 
/UIView - view 
    |- UIScrollView - scrollView 
     |- other subviews that should be scrollable 

滾動視圖的大小與觀點相同,其自動調整大小面具被設置在各個方向來調整。

我注意到scrollView的高度尺寸遠大於視圖的高度。

E.g.我有一些調試日誌:

 
NSLog(@"%@ - self.view.frame=%@, self.view.bounds=%@", NSStringFromSelector(_cmd), NSStringFromCGRect(self.view.frame), NSStringFromCGRect(self.view.bounds)); 
NSLog(@"self.scrollView.frame=%@, self.scrollView.bounds=%@", NSStringFromCGRect(self.scrollView.frame), NSStringFromCGRect(self.scrollView.bounds)); 

和它打印

 
willAnimateRotationToInterfaceOrientation:duration: - self.view.frame={{0, 0}, {480, 219}}, self.view.bounds={{0, 0}, {480, 219}} 
self.scrollView.frame={{0, 0}, {480, 399}}, self.scrollView.bounds={{0, 0}, {480, 399}} 

即使在Xcode IB它看起來像:

​​

爲什麼不UIScrollView具有相同大小視圖?

感謝


更新

奇怪的是,當我設置了滾動到460(iPhone縱向)的高度時,Xcode/IB表明了滾動比其父更小視圖(其中也設置相同的尺寸): enter image description here

但是現在我創建了一個測試項目,只有1個XIB,只有1個UIView,在那裏增加1 UIScrollView,它看起來很正常,UIScrollView的高度與UIView相匹配。

因此,也許我已經搞砸了XIB和Xcode不能很好地處理它。

無論如何,我以編程方式設置尺寸(以處理旋轉,UI組成變化等),它按預期工作。因爲這是我的第一個iOS項目,我只是想知道UIScrollView是否有什麼魔法。顯然不是:-)

感謝您的所有意見。

+1

你爲什麼不把scrollview的高度改爲460? – JeanLuc 2012-07-06 08:23:42

回答

-1

我創建了一個帶有1個XIB的測試項目,它只有1個UIView,並在那裏添加了1個UIScrollView,它看起來很正常,UIScrollView的高度與UIView的高度相匹配。

因此,也許我已經搞砸了XIB和Xcode不能很好地處理它。

感謝您給我的評論。

1

首先,將UIScrollView邊界設置爲與其超級視圖相同的100%。接下來確保它的超級視圖的autoresizesSubviews屬性設置爲YES。然後一切都會正常工作。此外,「willAnimate ...」表示旋轉操作尚未完成,您應該在「didRotate」回調中檢查新幀。

+0

感謝您的評論,尤金。奇怪的是,當我將scrollView的高度設置爲父UIView的100%(在這種情況下是460px)時,Xcode顯示的scrollView只是更小(請參閱我添加到我的問題的圖像)。我已經更新了我的問題並準備關閉它:在另一個測試項目中,它看起來沒問題。可能有些Xcode不穩定。 – 2012-07-07 14:05:59