SORU
13 EKİM 2012, CUMARTESİ


Onun superview bir görünüm Görsel Biçim Dili kullanarak ortalama

Ben sadece iOS için Otomatik düzen öğrenmeye başladım ve Visual Biçim Dili bir göz vardı.

Bu bir şey dışında gayet iyi çalışıyor: ben sadece onun superview içinde merkezi bir görünüm elde edemezsiniz.
VFL ile bu mümkün mü yoksa manuel bir kısıtlama oluşturmak gerekiyor kendimi?

CEVAP
30 EKİM 2012, Salı


Şu anda, hayır, superview kullanarak bir görüntüleme merkezi için mümkün gibi görünmüyorsadeceVFL. Ancak bunu yapmak o kadar da zor VFL tek bir dize ve tek ekstra bir kısıtlama (eksen başına) kullanarak:

VFL: "|-(>=20)-[view]-(>=20)-|"

[NSLayoutConstraint constraintWithItem:view
                             attribute:NSLayoutAttributeCenterX
                             relatedBy:NSLayoutRelationEqual
                                toItem:view.superview
                             attribute:NSLayoutAttributeCenterX
                            multiplier:1.f constant:0.f];

Sadece bunu yapmak mümkün ben başlangıçta düşünce nedir ve bu soruyu görünce denedim) olacağını düşünürdüm:

[NSLayoutConstraint constraintsWithVisualFormat:@"|-(>=20)-[view(==200)]-(>=20)-|"
                                 options: NSLayoutFormatAlignAllCenterX | NSLayoutFormatAlignAllCenterY
                                 metrics:nil
                                   views:@{@"view" : view}];

Denedim çok farklı varyasyonlar yukarıdaki çalışırken viraj benim, ama bu görünmez uygulamak için superview bile açıkça sahip iki ayrı VFL dizeleri için her iki eksen (H:|V:). Ben o zaman bu seçenek tam olarak ne zaman deneyin ve tecrit etmeye başladıyapınVFL uygulanır. GözüküyorlardeğilVFL içinde superview için geçerli ve sadece VFL dizesinde anlatılan herhangi bir açık görüş bazı durumlarda hayal kırıklığı olan) için geçerli olacaktır.

Umarım gelecekte Apple ekler bir çeşit yeni seçeneği var VFL seçenekleri hesaba the superview bile yapıyor sadece ... ne olduğunu bir tek açık bir görünüm yanı sıra superview içinde VFL. Gibi bir şey diyor başka bir seçenek VFL içine geçmiş olabilir başka bir çözüm: NSLayoutFormatOptionIncludeSuperview.

Söylemeye gerek yok, VFL hakkında çok şey bu soruyu cevaplamak için çalışırken öğrendim.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • booba1234

    booba1234

    22 Temmuz 2006
  • BSA

    BSA

    9 NİSAN 2012
  • David MeShow

    David MeShow

    10 EKİM 2006