Derzeit ist es nicht möglich, eine Ansicht in der Übersicht nur mit VFL zu zentrieren . Es ist jedoch nicht so schwierig, dies mit einer einzelnen VFL-Zeichenfolge und einer einzelnen zusätzlichen Einschränkung (pro Achse) zu tun:
VFL: "|-(>=20)-[view]-(>=20)-|"
[NSLayoutConstraint constraintWithItem:view
attribute:NSLayoutAttributeCenterX
relatedBy:NSLayoutRelationEqual
toItem:view.superview
attribute:NSLayoutAttributeCenterX
multiplier:1.f constant:0.f];
Man würde denken, dass Sie dies einfach tun könnten (was ich ursprünglich gedacht und versucht habe, als ich diese Frage sah):
[NSLayoutConstraint constraintsWithVisualFormat:@"|-(>=20)-[view(==200)]-(>=20)-|"
options: NSLayoutFormatAlignAllCenterX | NSLayoutFormatAlignAllCenterY
metrics:nil
views:@{@"view" : view}];
Ich habe viele verschiedene Variationen der oben genannten versucht, um sie meinem Willen anzupassen, aber dies scheint nicht auf die Übersicht zuzutreffen, selbst wenn explizit zwei separate VFL-Zeichenfolgen für beide Achsen vorhanden sind ( H:|V:
). Ich fing dann an, genau zu isolieren, wann die Optionen es tun auf den VFL erhalten angewandt. Sie scheinen nicht für die Übersicht in der VFL zu gelten und gelten nur für explizite Ansichten, die in der VFL-Zeichenfolge erwähnt werden (was in bestimmten Fällen enttäuschend ist).
Ich hoffe, dass Apple in Zukunft eine neue Option hinzufügt, damit die VFL-Optionen die Übersicht berücksichtigen, auch wenn dies nur dann der Fall ist, wenn es neben der Übersicht in der VFL nur eine einzige explizite Ansicht gibt. Eine andere Lösung könnte eine andere Option sein, die an die VFL übergeben wird und etwa Folgendes sagt:NSLayoutFormatOptionIncludeSuperview
.
Unnötig zu erwähnen, dass ich viel über VFL gelernt habe, um diese Frage zu beantworten.