hug*_*dan 5 iphone objective-c ios
我正在尝试调整UIImageView的大小,具体取决于设备是iPhone 5(高屏幕)还是早期iPhone版本(更短屏幕).以下是我的代码.但是,当我运行应用程序时,这些指令将被忽略.我怀疑问题是由自动布局约束引起的.如果我关闭这些约束,图像会被调整大小,但会影响我的其余布局.无论如何有选择地覆盖自动布局而不是关闭它?
CGRect screenBounds = [[UIScreen mainScreen] bounds];
if (screenBounds.size.height == 568) {
// code for 4-inch screen
avatarImage.frame = CGRectMake(43, 372, 75, 75);
} else {
// code for 3.5-inch screen
avatarImage.frame = CGRectMake(43, 372, 50, 50);
}
Run Code Online (Sandbox Code Playgroud)
编辑
下面是我试图解决的问题的图像.我希望头像图像按比例调整,直到它适合较小的视图.我想以编程方式将文本字段向上移动到标签的右侧.


Rob*_*Rob 20
一种方法是以编程方式更改约束.你可以这样做:
通过选择图像视图为您的imageview创建高度和宽度约束,然后在Xcode 5中单击
按钮:

或者,在Xcode的早期版本中,通过单击
按钮:

确保更改其他,辅助,约束工作允许调整imageview的大小.例如,如果此缩略图图像右侧有标签,则需要确保设置该标签,以便随着图像大小的变化调整标签的宽度.最重要的是,您希望确保在应用程序运行时没有约束冲突,因为如果确实存在一些冲突,您可能会收到一条调试消息,指出必须打破约束才能使应用程序正常工作,或者更糟糕的是,约束不可满足.
IBOutlet为新的高度和宽度约束创建引用.最简单的方法是显示助理编辑器(以便在操作故事板时显示关联的.h文件),然后control从约束拖动到.h文件:

然后在您的代码中,您可以更改约束:
CGRect screenBounds = [[UIScreen mainScreen] bounds];
if (screenBounds.size.height >= 568) {
self.widthConstraint.constant = 75;
self.heightConstraint.constant = 75;
} else {
self.widthConstraint.constant = 50;
self.heightConstraint.constant = 50;
}
Run Code Online (Sandbox Code Playgroud)