まず我々はそうのようにこれを行うことができ、レイアウトの変更からサイズの変更にフックを取得する必要があります:
override var bounds: CGRect {
didSet {
print("Bounds have changed: \(bounds)")
}
}
これは、カスタムキーボードビューで使用する必要があります。次に、カスタムキーボードレイアウトを更新します。あなたのスクリーンショットを見ると、キーの高さと幅を調整するだけで済み、後でサイズクラスの変更によって調整が追加され、レイアウトをより詳細に制御できることが示唆されています。 @IBOutlets
を使用して高さと幅の制約を参照したり、サブビューを繰り返したり、手動で幅と高さの制約を見つけたり変更したりする必要があります。どちらも面倒ですが、@IBOutlets
を使用する方が簡単です。
func updateKeys() {
DispatchQueue.main.async {
// Create array of width constraints
let widthConstraints: [NSLayoutConstraint] = widthArray()
widthConstraints.forEach { _ in /* change width constant for current layout */ }
// Create array of height constraints
let heightConstraints: [NSLayoutConstraint] = heightArray()
heightConstraints.forEach { _ in /* change height constant for current layout */ }
}
}
これはやってのただ一つの方法ですが、私はオートレイアウトとそこに複雑なレイアウトでそれをやっての1つの方法は、常にだが、それはあなたが使用できるパターンを示すべきであることがわかります。
今見ているスクリーンショットをいくつか追加してください。 –