1
値w R人事制約の変化の方向を区別する方法:のための制約の変化を通じての向きを特定することは不可能であるとして、しかし、それは見えます、デバイスの向きに応じてUIImageView
に9または9時16アスペクト比の制約をそのようなケースはwR hR = hR wR
です。 1は、この問題に対処するにはどうすればよい私は16に適用しようとしている
?
値w R人事制約の変化の方向を区別する方法:のための制約の変化を通じての向きを特定することは不可能であるとして、しかし、それは見えます、デバイスの向きに応じてUIImageView
に9または9時16アスペクト比の制約をそのようなケースはwR hR = hR wR
です。 1は、この問題に対処するにはどうすればよい私は16に適用しようとしている
?
あなたは
IBOutlet
2つの比率制約への参照。ビューコントローラの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
}
注意、 'traitCollectionを上書きしたくなりますAppleはこれを嫌う(https://developer.apple.com/reference/uikit/uitraitenvironment/1623514-traitcollection)。しかし、ビューコントローラの包含を実装する場合、親に['setOverrideTraitCollection'](https://developer.apple.com/reference/uikit/uiviewcontroller/1621406-setoverridetraitcollection)を使用させることができます。言ったように、私はそれが上記のように行うほうが簡単だと思います。 – Rob