我的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);
答案 0 :(得分:5)
您可以在viewDidLayoutSubviews
- (void)viewDidLayoutSubviews {
[super viewDidLayoutSubviews];
// Do your resizing
}
在viewDidLoad
中,视图刚刚被加载,这太早依赖于帧值。视图没有超级视图,自动调整掩码和自动布局规则可以更改帧值。
如果您仍希望在viewDidLoad
中执行此操作,则需要使用固定的框架值(例如CGRectMake(10,10,600,400)
)。