繁体   English   中英

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

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM