![](/img/trans.png)
[英]Changing UIView (UIImageView specifically) frame programmatically not working
[英]changing UIImageView frame size programmatically
我有一個UImageView
,其初始尺寸從xib
設置為:
Y:0,高度:406。
在viewDidLoad
,根據條件,我正在使用以下代碼:
self.mainAdImg.frame = CGRectMake(self.mainAdImg.frame.origin.x, self.mainAdImg.frame.origin.y + OFFSET, self.mainAdImg.frame.size.width, self.mainAdImg.frame.size.height);
其中mainAdImg is the UIImageView, and OFFSET is 20.0f
因此,我希望圖像下降20.0
。
相反,新值變為:
Y : 20 (correct), height: 426 (not expected)
為什么高度會變化?
編輯:
我沒有使用自動版式。
我記錄原點,高度是這樣的:
NSLog(@" Y : %f, height : %f",self.mainAdImg.frame.origin.y,self.mainAdImg.frame.size.height);
您可以在viewDidLayoutSubviews
執行此操作
- (void)viewDidLayoutSubviews {
[super viewDidLayoutSubviews];
// Do your resizing
}
在viewDidLoad
,視圖只是被加載,這太早了,太依賴幀值了。 該視圖沒有超級視圖,並且自動調整大小蒙版和自動布局規則可以更改幀值。
如果仍然要在viewDidLoad
執行此操作,則需要使用固定的幀值(例如CGRectMake(10,10,600,400)
)。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.