Ein Problem mit Autolayout

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • Ein Problem mit Autolayout

    Hallo,

    ich möchte das meine View immer halb so breit ist wie hoch. Das mache ich mit folgendem Constraint:

    Quellcode

    1. [self.viewImage addConstraint:
    2. [NSLayoutConstraint constraintWithItem:self.viewImage
    3. attribute:NSLayoutAttributeWidth
    4. relatedBy:NSLayoutRelationEqual
    5. toItem:self.viewImage
    6. attribute:NSLayoutAttributeHeight
    7. multiplier:0.5
    8. constant:1]];


    Dabei gibt es zwei Probleme. erstens stimmt die halbe Größe nicht. Zweitens läßt sich das Fenster nicht breiter ziehen, weil andere Positionierungs-Constraints das blockieren. Diese kann ich jedoch nicht löschen, weil die sofort wieder automatisch neu angelegt werden.
    Ich finde das ganze System mit Auto-Layout sehr umständlich und unflexibel.

    Gibt es eine Möglichkeit für einzelne Views das Auto-Layout zu deaktivieren? Oder entweder für alle Sub-Views oder für keine?

    Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von bachelor ()

  • Der Wert 1 bei constant war noch falsch.
    So funktioniert das mit der halben Breite:

    Quellcode

    1. [self.viewImage addConstraint:
    2. [NSLayoutConstraint constraintWithItem:self.viewImage
    3. attribute:NSLayoutAttributeWidth
    4. relatedBy:NSLayoutRelationEqual
    5. toItem:self.viewImage
    6. attribute:NSLayoutAttributeHeight
    7. multiplier:0.5
    8. constant:0]];


    Es bleibt das Problem mit dem Vergrößern des Fensters.
    Da ich aber keine Möglichkeit gefunden habe für manche Views alle Constraints zu löschen oder Auto Layout zu deaktivieren, habe ich mich gegen Auto Layout entschlossen und arbeiten mit den Springs and Struts weiter.