NSConstraints können nicht programmgesteuert für die Anzeige festgelegt werden

StackOverflow https://stackoverflow.com//questions/24019963

  •  21-12-2019
  •  | 
  •  

Frage

Ich versuche etwas ganz Einfaches zu tun:Erstellen Sie eine Ansicht von Grund auf, fügen Sie sie zur Ansicht des Controllers hinzu und lassen Sie sie von Kante zu Kante bis zu ihrer Superansicht strecken. Sobald die App ausgeführt wird, erhalte ich jedoch eine Konsolenwarnung, die besagt, dass die Einschränkungen nicht gleichzeitig zur Ansicht hinzugefügt werden können.

    backView = [UIView new];
    backView.backgroundColor = [UIColor redColor];
    [[self view] insertSubview:backView aboveSubview:tableview];
    [[self view] addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@"|-0-[back]-0-|"
                                                                        options:0
                                                                        metrics:nil
                                                                          views:@{@"back": backView}]];

     [[self view] addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@"V:|-0-[back]-0-|"
                                                                         options:0
                                                                         metrics:nil
                                                                           views:@{@"back": backView}]];
War es hilfreich?

Lösung

Wenn Sie eine erstellen UIView im Code es translates auto-resizing mask to constraints.

d.h.Es nimmt den Rahmen, den Sie ihm beim Erstellen gegeben haben, und die Maske zur automatischen Größenänderung und konvertiert sie in NSLayoutConstraints.

Diese automatisch generierten Einschränkungen stehen dann im Widerspruch zu den Einschränkungen, die Sie manuell hinzufügen.

Wenn ich recht habe, können Sie das Problem beheben, indem Sie die Zeile hinzufügen ...

backView.translatesAutoresizingMaskIntoConstraints = NO;

direkt nach der ersten Zeile und es sollte das Problem beheben.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top