![](/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.