SORU
1 Kasım 2012, PERŞEMBE


Aynı görünümde setFrame ve otomatik kullanabilir miyim?

UİButton ben alt yani benim düğmeleri tüm dolgu eklemek istiyorum, ve diğer değişiklikler arasında, setFrame kullanarak sabit bir dolgu eklemek istedim:. Her şey, setFrame dışında çalışıyordu. Ve eğer "Otomatik düzen" bu görüş, daha sonra setFrame kullanabilirim. işe yarıyor. kullanıyorum işaretini kaldırırsanız buldum kontrol ettim Bu etrafında bir yolu var mı? Gerçekten bu uygulama iphone 5 ve önceki cihazlar hem de iyi bakmak yapımında yardımcı olur, çünkü otomatik kullanmak istiyorum. Ama benim de alt setFrame, benim hayat biraz daha kolay hale getirmek için kullanmak ister.

Yani benim sorum şöyle özetliyor: otomatik kullanabilir miyim ve de UİView bir programmaitcally çerçevesinde ayarlamak?

CEVAP
24 Kasım 2012, CUMARTESİ


Evet, bu yapılabilir.

translatesAutoresizingMaskIntoConstraints = YES, aramaları daha sonra görüntülemek ayarlarsanız setFrame: otomatik olarak manzara autoresizingMask geçerli dayalı düzeni kısıtlamaları içine zamanında çevrilir. Bu karışımı Kare tabanlı düzeni kısıtlama tabanlı ile düzeni sağlar.

Örneğin Otomatik Düzen bir bakış subviews tüm düzenini tanımlamak için kullanın, ama yine de setFrame: görünümünü, boyutunu ve konumunu ayarlamak için kendisi de diyebilirsiniz. Sizin perspektifinizden, Otomatik Düzen ve doğrudan çerçeve manipülasyon karışımı bir düzen yapıyorsun. Ama aslında sistem kısıtlamaları her şeyi işlemek için kullanıyor.

Ancak, translatesAutoresizingMaskIntoConstraints kullanma konusunda büyük bir uyarı var.

Bunu yaptığınızda,hala bu otomatik kısıtlamaları kısıtlamaları geri kalanı ile tatmin edilebilir olduğundan emin olmak gerekir.

Bu yüzden, örneğin, zaten görüntüleme ve sonra boyutunu ve konumunu belirleyen kısıtlamaları vardır sanırımayrıca*5 set* setFrame: denir. 7* *çağrısı muhtemelen mevcut kısıtlamaları ile çakışacak olan görünüm, yeni kısıtlamalar oluşturur.

(Aslında bu hata sık sık oluyor. Eğer görürseniz günlük mesaj çelişen kısıtlamalar ve bu kısıtlamaları bir şikayet gördükleriniz NSAutoresizingMaskLayoutConstraint, sonra otomatik bir kısıtlama bir çelişki. Bu bir hata, çünkü translatesAutoresizingMaskIntoConstraints = YES varsayılan değer, eğer başın yapılandırma kısıtlamaları kodu gerekir unutmayın kapatmak için istemiyorsan bu otomatik kısıtlamaları.)

Buna karşılık, zaten görünümü, boyutu ve konumunu belirleyen mevcut kısıtlamaları vardır yine varsayalım, ama o setFrame: aramadan önce translatesAutoresizingMaskIntoConstraints = NO ayarlayın. Bu durumda, setFrame: aramalarınız yeni kısıtlamaları üretmek olmaz, çatışma olurayrı kısıtlamaları arasında. Ancak, bu durumda, hala bir"". çelişki yok ^em>kısıtlamalar ve kare değeri arasında ayarlayın. Bir sonraki sefer Otomatik Düzen çağrılır, değil mi bakın zaten mevcut kısıtlamaları görünüm, hesaplamak frame değeri olan ihtiyaç ve set çerçeve için gerekli değer kendisi, clobbering değeri el ile ayarlayın.

Daha fazla bilgi için, check out bölümüne "Otomatik Düzen" Apple Cocoa Auto Layout Guide. Benimseyerek

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

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Adam Outler

    Adam Outler

    19 EKİM 2006
  • Munchkin the Teddy Bear

    Munchkin the

    30 EYLÜL 2011
  • The Brister

    The Brister

    10 ŞUBAT 2008