特定のUIView
の高さ制約をプログラムで取得し、コード内でその値を変更する方法はあるのだろうか? IBに固定された4つのエッジと高さの制約が追加されたUIViews
がいくつかある状況があります(そうしないとIBが不満を言います)が、プログラムの途中で高さを変更する必要がありますUIViews
を使用し、一部のUIViews
をビュー内で押し下げます。
ctrl + drag各UIViews
の高さの制約を変更し、コード内でそれらの値を変更できることは知っていますが、そのためには何十個も配線する必要があります。したがって、これは効率的ではなく、何らかの方法でスケーラブルではないと思います。
だから私はコードを介して特定のビューの高さの制約を完全に取得し、それを動的に変更する方法があるのだろうか?
ありがとう!
その特定の制約を、次のようなインターフェイスビルダーからコードに接続できます。
また、NSLayoutConstraint
には、固定ピン値である定数プロパティが設定されています。
プログラムで制約を追加する場合は、NSLayoutConstraint
クラスのidentifierプロパティから確実に恩恵を受けることができます。それらを設定し、繰り返し処理して、特定の特定された制約を取得します。
ドキュメントが言うように
extension NSLayoutConstraint {
/* For ease in debugging, name a constraint by setting its identifier, which will be printed in the constraint's description.
Identifiers starting with UI and NS are reserved by the system.
*/
@availability(iOS, introduced=7.0)
var identifier: String?
}
最初に.h
ファイルに高さの制約を追加します。
//Add Outlet
IBOutlet NSLayoutConstraint *ViewHeightConstraint;
次に、以下のコードを.m
ファイルに追加します。
//Set Value From Here
ViewHeightConstraint.constant = 100;