Saat ini, tidak, sepertinya tidak mungkin untuk memusatkan tampilan di superview hanya menggunakan VFL. Namun, tidak sulit untuk melakukannya dengan menggunakan string VFL tunggal dan satu kendala tambahan tunggal (per sumbu):
VFL: "|-(>=20)-[view]-(>=20)-|"
[NSLayoutConstraint constraintWithItem:view
attribute:NSLayoutAttributeCenterX
relatedBy:NSLayoutRelationEqual
toItem:view.superview
attribute:NSLayoutAttributeCenterX
multiplier:1.f constant:0.f];
Orang akan berpikir bahwa Anda hanya dapat melakukan ini (yang awalnya saya pikirkan dan coba ketika saya melihat pertanyaan ini):
[NSLayoutConstraint constraintsWithVisualFormat:@"|-(>=20)-[view(==200)]-(>=20)-|"
options: NSLayoutFormatAlignAllCenterX | NSLayoutFormatAlignAllCenterY
metrics:nil
views:@{@"view" : view}];
Saya mencoba banyak variasi berbeda dari yang di atas mencoba untuk menekuknya sesuai keinginan saya, tetapi ini tampaknya tidak berlaku untuk superview bahkan ketika secara eksplisit memiliki dua string VFL yang terpisah untuk kedua sumbu ( H:|V:
). Saya kemudian mulai mencoba dan mengisolasi kapan tepatnya opsi yang bisa diterapkan pada VFL. Mereka tampaknya tidak berlaku untuk superview dalam VFL dan hanya akan berlaku untuk pandangan eksplisit yang disebutkan dalam string VFL (yang mengecewakan dalam kasus-kasus tertentu).
Saya berharap di masa depan Apple menambahkan beberapa jenis opsi baru agar opsi VFL memperhitungkan superview, bahkan jika melakukannya hanya ketika hanya ada satu tampilan eksplisit selain superview dalam VFL. Solusi lain bisa menjadi pilihan lain dilewatkan ke dalam VFL yang mengatakan sesuatu seperti: NSLayoutFormatOptionIncludeSuperview
.
Tak perlu dikatakan, saya belajar banyak tentang VFL mencoba menjawab pertanyaan ini.