xibファイルに基づいてカスタムUIViewを作成し、いくつかのUIVIewsに制約を追加しました。自動レイアウトでカスタムUIViewで計算されたフレームを取得する方法
私のView Controllerで私はUIViewを追加し、そのクラスを私のカスタムビューに設定しました。ここまでは順調ですね。私のカスタムビューが正しく表示されます。
しかし、今では@IBInspectable(numerOfButtons:Int)があり、この番号に基づいてUIButtonsをカスタムビューにプログラムで追加したいと考えています。 私のカスタムビューのサブビューにこのボタンを合わせたいと思っています。だから、プログラムでボタンフレームを設定しようとしています。しかし、私がlayoutSubviews()でこれを行うと、私のサブビューは私の自動レイアウト制約に基づいて計算されません。私は私のサブビューのsetNeedsLayout()とlayoutIfNeeded()を呼び出そうとしましたが、これはうまくいきません。
どのように私はlayoutSubviewsでそれらと連携する(私の制約の計算で)私のサブビューの正しいフレームを取得することができます()
それとも私が間違って何をすべきか?
ところで、私のアプローチはiPad Pro 9.7インチシミュレータで動作しようとすると動かないようです。プログラム的制約を設定するには
代わりのフレームを計算することができ、制約を設定することは非常に簡単このlibraryとの代替ソリューションを持っていますスタックビューを使用する必要があります。このhttps://developer.apple.com/videos/play/wwdc2015/218/とhttps://developer.apple.com/videos/play/wwdc2015/219/ –
を見ればこれは私の問題を解決しません問題はボタンがnumberOfButtonsに基づいて追加したい唯一のコントロールではないためです。私はまた、スクロールビューのcontentSizeを変更し、このスクロールビューにビューを追加したいと思います。そしてそこに私はスタックビューを使用することはできません。それは、計算されたフレームを取得する方法を見つけようとする理由です。 –