视图高度应根据视图宽度更改:自动布局

View height should change as per view width: Auto Layout

这里我的视图宽度是根据超级视图宽度的比例变化的。此外,高度根据超级视图高度的比例而变化。但是,我想将我的高度固定为与视野宽度相同。

具体来说,类似于:view.height = view.width

问题是如果我按照比例设置,我的超级视图高度和宽度然后 iPhone 高度大于宽度。以下是一些屏幕截图,说明了我的观点。

iPhone 屏幕

iPad 屏幕

在上面的屏幕中,iPad 看起来不错,但对于 iPhone 高度,它不是按照比例。

设置视图的1:1宽度和高度的比例,然后设置视图和父视图的比例宽度,并调整约束乘数以获得您想要的视图的大小。

这样视图将始终具有相同的宽度和高度,并且会根据父视图的宽度而变化。

我得到了解决方案:

步数

  • 首先从视图中删除高度限制。
  • 在视图中按代码添加以下新约束

    let equalConstraint = NSLayoutConstraint(item: self.imgProfile,
                attribute:NSLayoutAttribute.Width,
                relatedBy:NSLayoutRelation.Equal,
                toItem: self.imgProfile,
                attribute: NSLayoutAttribute.Height,
                multiplier: 1.0,
                constant: 0.0);
            self.imgProfile.addConstraint(equalConstraint)