3

我尝试了几种不同的解决方案来解决这个问题,但都没有成功。

我有一个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];
}

有任何想法吗???谢谢。

4

3 回答 3

2

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

编辑

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

[self.imageWidthConstraint setConstant:100.0];
于 2013-09-11T12:56:01.823 回答
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.
于 2013-09-11T12:57:13.170 回答
0

UIViews由代码或情节提要创建的大小调整没有区别。完全一样:设置视图的框架,就像你正在做的那样。

可能会发生什么:

  1. 你的 if 条件永远不会是真的。如果甚至调用了其中的代码,您是否检查过断点?可能浮点直接比较有一些错误。看到这个。此外,请参阅内容以更好地了解如何检查它是否为 4 英寸显示屏。

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

于 2013-09-11T12:57:22.383 回答