以编程方式调整UIImageView的大小

时间:2013-09-11 12:50:18

标签: ios uiimageview

我已经针对这个问题尝试了几种不同的解决方案但没有成功。

我有一个UIImageView(在故事板上创建),上面有多个手势识别器。我试图根据屏幕尺寸调整此UIImageView的大小以利用4英寸显示屏。

看来,由于Imageview是使用故事板构建的,我无法以编程方式更改它

我目前的代码如下:

//determine screen size, set scoring button width based on device size.
CGFloat lCurrentHeight = self.view.bounds.size.height;
if (lCurrentHeight == 568.0) {
    CGRect _redHeadImageFrame = _redHeadImage.frame;
    _redHeadImageFrame.size.width = 220;
    [_redHeadImage setFrame:_redHeadImageFrame];
}

任何想法???感谢。

3 个答案:

答案 0 :(得分:2)

如果您使用自动布局,则必须更改图像的约束,因为在这种情况下手动更改框架将不起作用。

修改

您可以为其他控件创建宽度约束的IBOutlet - 只需在IB中选择约束并使用右键将其移动到头文件中。比代码更改约束:

[self.imageWidthConstraint setConstant:100.0];

答案 1 :(得分:0)

是的,你需要像这样使用,

CGFloat lCurrentHeight = [[UIScreen mainScreen] bounds].size.height; //it will give 568

CGFloat lCurrentHeight = self.view.bounds.size.height;//it will give 548,in your case that condition failed.

答案 2 :(得分:0)

调整代码或故事板创建的UIViews的大小没有区别。它完全相同:设置视图的框架,就像你一样。

可能发生的事情:

  1. 你的if条件从来都不是真的。如果甚至调用其中的代码,您是否检查过断点?也许在浮动直接比较中存在一些错误。见this。 另外,请参阅this以更好地了解如何检查4英寸显示屏。

  2. 如果实际调用了setFrame:代码,请检查您是否在视图中使用自动布局。也许UIImageView中存在约束。在这种情况下,您应该使用此约束,以便正确调整视图大小。