2016-07-25 32 views
1

Ich frage mich, wenn Sie eine Einschränkung zu einer Ansicht hinzufügen und den Constraint-Zeiger nicht beibehalten, wie können Sie diese bestimmte Einschränkung in einer Ansicht später finden?Was empfehlen Sie, eine bestimmte Einschränkung in einer UIView zu finden?

Ich versuchte dies für eine Ansichtsanimation. Ich dachte, ich könnte alle Beschränkungen in der Ansicht durchlaufen und den bestimmten in der Liste finden. Aber es war nicht. Es gibt so viele Einschränkungen.

Ich hatte den Eindruck, dass es fast unmöglich ist, einen zu finden, es sei denn, ich hatte den Zeiger für diese Einschränkung, damit ich sie zuordnen kann.

Also würde ich gerne wissen, ob das der beste Weg ist, eine Beschränkung zu finden.

Und, hier ist eine andere Frage. Zuvor habe ich direkt auf den Transformwert zugegriffen, um das Frame-Rect für die Animation zu ändern. Aber, mit 'Constraints' kann ich nicht direkt auf das Frame-Rect zugreifen, sondern habe es durch entsprechende Einschränkungen geändert. Gibt es eine Möglichkeit, den Transformationswert mit Einschränkungen zu verwenden?

+0

Sie können die Kennung für die Einschränkung festlegen, um sie zu identifizieren. –

+0

Vielen Dank! Das habe ich gesucht. – pearl7721

Antwort

4

eine Kennung zu einer Einschränkung Set

myConstraint.identifier = "<MyIdentifierText>"; 

Get Einschränkung mit Kennung:

NSArray *constraints = [myView constraints]; 

for (int index = 0; index < [constraints count]; index ++) 
{ 
    NSLayoutConstraint *constraint = constraints[index]; 
    if ([constraint.identifier isEqualToString:@"<MyIdentifierText>"]) { 

     // save the reference to constraint 
     // or do the necessary operations 
     break; 
    } 
    index++; 
} 

Hoffnung, das hilft.