Şu anda, hayır, sadece VFL kullanarak denetimde bir görünüm ortalamak mümkün görünmüyor . Bununla birlikte, tek bir VFL dizesi ve tek bir ekstra kısıtlama (eksen başına) kullanarak bunu yapmak zor değildir:
VFL: "|-(>=20)-[view]-(>=20)-|"
[NSLayoutConstraint constraintWithItem:view
attribute:NSLayoutAttributeCenterX
relatedBy:NSLayoutRelationEqual
toItem:view.superview
attribute:NSLayoutAttributeCenterX
multiplier:1.f constant:0.f];
Biri bunu yapabileceğinizi düşünür (bu soruyu gördüğümde başlangıçta düşündüğüm ve denediğim şey):
[NSLayoutConstraint constraintsWithVisualFormat:@"|-(>=20)-[view(==200)]-(>=20)-|"
options: NSLayoutFormatAlignAllCenterX | NSLayoutFormatAlignAllCenterY
metrics:nil
views:@{@"view" : view}];
Yukarıdakilerin birçok farklı varyasyonunu kendi isteğime bükmeye çalıştım, ancak bu, her iki eksen ( H:|V:
) için açıkça iki ayrı VFL dizesine sahip olsa bile denetim için geçerli görünmüyor . Sonra denemek için başladı ve seçenekleri tam olarak ne zaman izole do VFL uygulanmıyor. Onlar gibi görünen değil VFL içinde Superview için geçerlidir ve sadece (bazı durumlarda hayal kırıklığı yaratıyor) VFL dizede belirtilen herhangi açık görünümleri için geçerli olacaktır.
Umarım Apple, VFL'nin denetiminin yanında sadece tek bir açık görünüm olsa bile, VFL seçeneklerinin denetimin dikkate alınmasını sağlamak için bir tür yeni seçenek ekler. Başka bir çözüm gibi bir şey diyor VFL geçirilen başka bir seçenek olabilir: NSLayoutFormatOptionIncludeSuperview
.
Söylemeye gerek yok, bu soruyu cevaplamaya çalışırken VFL hakkında çok şey öğrendim.