我尝试将16:9或9:16宽高比约束应用于UIImageView
,具体取决于设备方向,但是看起来因为这种情况应该通过约束变化来识别方向是不可能的到wR hR = hR wR
。
如何处理这个问题?
答案 0 :(得分:2)
你应该
添加IBOutlet
对两个比率约束的引用;
在视图控制器的viewDidLayoutSubviews
(或视图的layoutSubviews
)中,只需查看bounds
的宽度和高度,然后激活约束相应地:
@IBOutlet weak var portraitConstraint: NSLayoutConstraint!
@IBOutlet weak var landscapeConstraint: NSLayoutConstraint!
override func viewDidLayoutSubviews() {
super.viewDidLayoutSubviews()
let isLandscape = view.bounds.size.width > view.bounds.size.height
landscapeConstraint.isActive = isLandscape
portraitConstraint.isActive = !isLandscape
}