iOS: 使用AutoLayout调整UIImageView的大小

4
我刚开始接触AutoLayout并且有些困惑。我有一个UIImageView,它是UIView的一部分。当应用在3.5英寸的设备上运行时,我希望UIImageView根据屏幕大小的变化而调整大小。
我不确定如何实现这一点。从目前看到的情况来看,您只能设置视图的固定宽度和高度,是否可能使它们动态调整大小?换句话说,UIImageView如何根据父视图的高度进行相应的调整?
4个回答

8
  1. 在Interface Builder中选择您的ImageView。
  2. 按下固定按钮。
  3. 设置约束条件。

示例 enter image description here


这个答案没有问题。但与其给定固定的值,为什么不给出比例来调整UIImageView的位置和大小呢?如果你认为这是一个好的选择,那么以下链接就是处理iOS AutoLayoout with UIImageView的方法。 - AnujAroshA

3

这段代码将使UIImageView根据其父视图的宽度和高度进行调整。

UIImageView *myImageView = [[UIImageView alloc] initWithImage:theImage];
[self.view addSubview:myImageView];

[myImageView setTranslatesAutoresizingMaskIntoConstraints:NO];

NSArray *imageViewConstraints = [NSLayoutConstraint constraintsWithVisualFormat:@"H:|[myImageView]|" options:0 metrics:nil views:@{@"myImageView": myImageView}];
[self.view addConstraints:imageViewConstraints];

imageViewConstraints = [NSLayoutConstraint constraintsWithVisualFormat:@"V:|[myImageView]|" options:0 metrics:nil views:@{@"myImageView": myImageView}];
[self.view addConstraints:imageViewConstraints];

1

我也遇到了同样的问题。这可能会帮助一些人,

如果你在InterfaceBuilder或Storyboard中进行设计,只需将所有边缘固定到父视图(即Leading Space、Trailing Space、Top Space和Bottom Spoace到UIView)。

就这样。


-2
选择imageView。现在,从super view添加一个带有底部间距的pin。

这只会创建底部间距,图片大小不变。 - Petar

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接