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

时间:2016-03-09 07:05:12

标签: ios autolayout nslayoutconstraint nsautolayout

这里我的视图宽度根据超视图宽度的比例而变化。而且,高度根据超视高度的比率而变化。但是,我想将我的高度修改为与视图宽度相同。

特别是:view.height = view.width

问题在于,如果我按比例设置,我的超视图高度和宽度,那么iPhone高度大于宽度。以下是一些截图,说明了我的观点。

iPhone屏幕

iPhone screen

iPad屏幕

iPad screen

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

2 个答案:

答案 0 :(得分:0)

在视图的宽度和高度之间设置1:1的比例,然后在视图和超视图之间设置比例宽度,并调整约束乘数以获得所需视图的大小。

这样,视图将始终具有相同的宽度和高度,并将根据超视图的宽度而改变。

答案 1 :(得分:0)

我得到了解决方案:

步骤

  • 首先从视图中移除高度约束。
  • 通过视图

    上的代码添加以下新约束
    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)