视图高度应根据视图宽度更改:自动布局
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)
这里我的视图宽度是根据超级视图宽度的比例变化的。此外,高度根据超级视图高度的比例而变化。但是,我想将我的高度固定为与视野宽度相同。
具体来说,类似于: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)