gpt4 book ai didi

iphone - 是否可以有选择地覆盖 Interface Builder 中的布局约束?

转载 作者:可可西里 更新时间:2023-11-01 04:06:35 25 4
gpt4 key购买 nike

我正在尝试根据设备是 iPhone 5(高屏幕)还是更早的 iPhone 版本(较短屏幕)来调整 UIImageView 的大小。下面是我的代码。但是,当我运行该应用程序时,这些说明将被忽略。我怀疑问题是由自动布局约束引起的。如果我关闭这些约束,图像会调整大小,但这会弄乱我其余的布局。无论如何有选择地覆盖自动布局而不是将其关闭?

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

}

编辑

下面是我试图解决的问题的图片。我希望头像图像按比例调整大小,直到它适合较小的 View 。我想以编程方式将文本字段向上移动到标签的右侧。

enter image description here

enter image description here

最佳答案

执行此操作的一种方法是以编程方式更改您的约束。您可以通过以下方式执行此操作:

  1. 通过选择 ImageView 为您的 ImageView 创建高度和宽度约束,然后在 Xcode 5 中单击 m按钮:

    enter image description here

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

    create constraints

  2. 确保更改其他次要约束工作以允许调整 ImageView 的大小。例如,如果您在此缩略图的右侧有一个标签,您希望确保它已设置为标签的宽度会随着图像大小的变化而调整。最重要的是,您要确保在应用程序运行时没有约束冲突,因为如果您确实有一些冲突,您可能会收到一条调试消息,说明必须打破约束才能使应用程序运行,或者更糟的是,约束不可满足。

  3. 为新的高度和宽度约束创建 IBOutlet 引用。最简单的方法是显示助理编辑器(以便在操作 Storyboard时显示关联的 .h 文件),然后 control- 从约束拖动到 .h 文件:

    create IBOutlets

  4. 然后在您的代码中,您可以更改您的约束:

    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;
    }

关于iphone - 是否可以有选择地覆盖 Interface Builder 中的布局约束?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14175960/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com