2016-04-27 18 views
3

Xcode 7で私の制約を編集していたのですが、Interface Builderの識別子というフィールドが見つかりました。制約の識別子は何ですか?どのように使用しますか?識別子を使用してプログラムで制約にアクセスし、定数を変更できますか?私の質問はなぜ、その識別子はどのように役立つのですか?autolayoutで制約識別子を使用する方法と、識別子を使用して制約を変更する方法は? [Swift]

SNAPSHOT

サブビューにループして再度、サブビューを制限ループ付き識別子と制約にアクセスする方法はあります。つまり、ループなしで制約に直接アクセスできる方法はありますか?

UPDATE

私はこのコードをしようと試みだけの幅と高さ制約が

for subview in view.subviews { 
     for constraint in subview.constraints() { 
      if constraint.identifier == "identifier" { 
       return constraint 
      } 
     } 
    } 
+0

ここでは答える:http://stackoverflow.com/questions/27791597/is-there-a-way-to-add-an-identifier-to-auto-layout-constraints-in-interface-buil/31831576# 31831576 – oyalhi

+0

http://stackoverflow.com/questions/33038451/get-reference-to-nslayoutconstraint-using-identifier-set-in-storyboard –

+0

@oyalhi質問を更新しました。 –

答えて

4

をアクセスする方法:識別子が有用であるときに一致しないデバッグ(例えば、制約およびそれらのうちの1つが実行時に破損し、制約識別子がログに表示されているため、どちらが問題を引き起こすかがわかります)

WHY:制約識別子は、ログを読みやすく、より正確にし、多くの時間を節約します。

制約編集:あなたがプログラム的制約を変更したい場合はあなたは、ビュー(NOTオブジェクト自体)からそれらを削除(ラベルやボタンなど)として宣言しなければならないし、それらを設定します再度ビューに。私の知る限りでは、プログラムで制約を "編集"することはできません。

このコードでは、オブジェクトの幅と高さのみを含むビューの制約にアクセスするため、幅と高さのみを指定できます。

+3

を使用して制約をデバッグすることができます。コンセントとして宣言した後は、実際に制約を変更することができます。self.myConstraint.constant = 50.0 –

関連する問題