![](/img/trans.png)
[英]UIImageView size is bigger than the frame set inside Table View
[英]Frame size of UICollectionView is bigger than size of UIScreen
在我調用的UIViewController
viewDidLoad
函數中
print("\(UIScreen.main.bounds.size.width) \(collectionView.frame.width)")
它打印出來
320.0 375.0
這怎么可能? UICollectionView
應該具有相同的寬度,mb更小但絕對不會更大
故事板中此視圖的設置:
每個約束設置為
所以我在iPhone SE Simulator上測試它,但在Storyboard中我有iPhone 8。
但我相信當我使用autolayout(約束使我的視圖大小匹配安全區域的大小)時,它應該無關緊要
iPhone 8寬度為375點,iPhone SE為320點:
更新
似乎viewDidLoad
返回故事板中你最后選擇的設備的大小(非常難看)
因此,要獲得有關視圖的正確數據,我必須在viewDidAppear
獲取大小
在Android中,如果某些視圖的大小尚未可用(視圖尚未膨脹),那么它只返回零(width == 0,height == 0),但在iOS中,您可以在運行時從Xcode Storyboard獲得寬度和高度......真的嗎?
當您從故事板中實例化視圖控制器時,其視圖的大小將是故事板上當前設置的大小。 將其添加到視圖層次結構后,它將具有與屏幕相同的大小。 viewDidLoad
在添加視圖之前被調用,因此它仍然具有與故事板上相同的大小。 您可以獲得內部方法, viewWillApear
, viewDidAppear
和viewDidLayout
顯示的大小。 請記住,這些方法可能會被多次調用。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.