2017-01-04 14 views
1

私はビューの制約をループしようとしています。NSLayoutConstraints関連ビューを取得

私はview1に追加しました:先頭、末尾、先頭と高さの制約。

先頭、後続および先頭は、主にViewControllersビューです。

私がview1の制約をループする場合、私は高さの制約しか見ません。

for constraint in view1.constraints { 
    print(constraint) 
} 

NSLayoutConstraint:0x6180000968a0のUIView:(アクティブ)0x7fae6b409dd0.height == 146は

ので、私はそのsuperviews制約ループスルー(ViewControllersメインビュー)と私は、制約の多くにのいくつかを持ってそれらはview1に関連付けられています。

for constraint in view1.superview?.constraints { 
    print(constraint) 
} 

NSLayoutConstraint:0x618000096670 H:| - (0) - [UIViewの:0x7fae6b409dd0](アクティブ、名称: '|':のUIView:0x7fae6b40a180)

NSLayoutConstraint:0x6180000974d0 H:[UIViewの: 0x7fae6b409dd0] - (0) - | (アクティブ、名称: '|':のUIView:0x7fae6b40a180)

NSLayoutConstraint:0x618000097520 V:| - (0) - [UIViewの:0x7fae6b409dd0](アクティブ、名称: '|':のUIView:0x7fae6b40a180)

と私はもう気にしないでいくつかを得る。

私の問題は、私はすべてのview1のsuperviewsの制約をループし、それに関連付けられているものだけを取得したいということです。

この例では、UIView:0x7fae6b409dd0はview1です。

しかし、私はそのプロパティを取得する方法を理解できません。

おかげ


私はconstraint.firstAnchorをプリントアウトする場合、私はいくつかのより多くの情報を得るが、まだ関連するビューを取得傾けます。

NSLayoutXAxisAnchor:0x608000265480 "のUIView:0x7fae6b409dd0.leading">

NSLayoutXAxisAnchor:0x608000265480:> "のUIView 0x7fae6b409dd0.trailing"

NSLayoutXAxisAnchor:0x608000265480 "のUIView:0x7fae6b409dd0.top">

+0

フィルタ:

次に、あなたはそれが同じオブジェクトである場合に比較すること===演算子を使用することができます。 –

+0

@NareshReddyMどのようにしてビューを取得できますか?最初の/ 2番目の項目はAnyObjectです。 – ilan

+0

このスレッドの最初の回答を確認してくださいhttp://stackoverflow.com/questions/25045796/enumerating-a-views-nslayoutconstraints-in-swift –

答えて

1

firstItemsecondItemのプロパティをNSLayoutConstraintにすると、制約に関連するビューを取得できます。 secondItemです(オプション:)。アンラップする必要があります。NSLayoutConstraintクラスのfirstItem&secondItemプロパティを使用して

let constraints = view1.superview!.constraints 
var count = 0 

print("superview has \(constraints.count) constraints") 

for constraint in constraints { 
    if constraint.firstItem === view1 { 
     count += 1 
     print(constraint) 
    } else if let secondItem = constraint.secondItem, secondItem === view1 { 
     count += 1 
     print(constraint) 
    } 
} 

print("\(count) of them relate to view1") 
関連する問題