以编程方式更改UIImageView框架大小

时间:2013-11-17 22:28:42

标签: ios uiimageview frame

我的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);

1 个答案:

答案 0 :(得分:5)

您可以在viewDidLayoutSubviews

中执行此操作
- (void)viewDidLayoutSubviews {
    [super viewDidLayoutSubviews];

    // Do your resizing
}

viewDidLoad中,视图刚刚被加载,这太早依赖于帧值。视图没有超级视图,自动调整掩码和自动布局规则可以更改帧值。

如果您仍希望在viewDidLoad中执行此操作,则需要使用固定的框架值(例如CGRectMake(10,10,600,400))。