SORU
19 Kasım 2012, PAZARTESİ


Nasıl bir görünüm elde'otomatik kısıtlamaları kullanırken, geçerli genişlik ve yükseklik s?

Tek xib görünümün boyutunu alabilirsiniz çerçeve özelliği, çünkü dan bahsetmiyorum. Görünüm kısıtlamaları (bir olaya yanıt olarak belki bir dönüş sonra, ya) nedeniyle yeniden boyutlandırıldığında bahsediyorum. Bir şekilde mevcut genişlik ve yükseklik almak için var mı?

Kendi kısıtlamaları yineleme genişlik ve yükseklik kısıtlamaları aramaya çalıştım, ama çok temiz ve iç kısıtlamaları ikisi arasında ayrım yapamam beri) olduğunda başarısız olur. Ayrıca, eğer onlar aslında eğer yeniden boyutlandırmak için diğer kısıtlamaları kullanan yok genişlik ve yükseklik kısıtlamaları, yalnızca çalışır.

Neden bu benim için çok zor. ARG!

CEVAP
24 Kasım 2012, CUMARTESİ


Cevap [view layoutIfNeeded].

İşte bu yüzden:

Hala view.bounds.size.width view.bounds.size.height takvim görünümü mevcut genişlik ve yükseklik (veya view.transform ile oynuyorsanız sürece eşdeğer çerçeve,).

Eğer istediğin bu ise, genişlik ve yükseklik ima ederek mevcut kısıtlamaları, çözüm değil incelemek kısıtlamaları el ile, beri olur iste senin için yeniden uygulamak tüm kısıtlama çözme mantık otomatik düzen sistemi. Ne yapman gerektiğini bunun yerine, sadeceotomatik düzen bu düzen güncelleştirmek için sorkısıtlamalar ve güncelleştirmeleri görüntüle değerini çözer.doğru çözüm ile sınırları ve görünüm inceleyin.iyi bir çalışma olmuş.

Nasıl düzeni güncellemek için otomatik düzen soruyorsun? Eğer otomatik çalışma düzeni döngünün bir sonraki dönüşte düzeni güncellemek istiyorsanız [view setNeedsLayout] Ara.

Ancakeğer bu düzeni hemen güncellemek istiyorsanız, bu yüzden hemen yeni sınır değer erişebilirsinizgeçerli işlev içinde daha sonra ya da çalışma döngünün açmadan önce başka bir noktada, daha sonra [view setNeedsLayout] [view layoutIfNeeded] aramalısın.

İkinci bir soru sordu: "nasıl istiyorsan öyle bir referans yok eğer doğru değilse genişliği kısıtlaması boy/doğrudan değiştirebilir miyim?".

Eğer Interface Builder, kısıtlama oluşturmak için en iyi çözüm view controlle r IBOutletveya doğrudan bir referans var, bu yüzden görünüm oluşturmak için. Eğer kod kısıtlaması oluşturduğunuz zaman oluşturduğunuz zaman weak property Bir iç başvuru saklamalısın. Eğer başka biri kısıtlaması oluşturulan, muayene görünümünü inceleyerek, onu bulmak gerekir.kısıtlamaları görünüm özelliği, ve tüm görünüm hiyerarşisi ve önemli NSLayoutConstraint bulan uygulama mantığı muhtemelen. Bu sorunun basit bir cevabı olmasını garanti yok, ayrıca etkili bir şekilde sınırları boyutunu tespit belirlemek için gerektirir beri muhtemelen gitmek için yanlış bir yol. Son sınır değeri birden fazla kısıtlamalar, çoklu öncelikleri, vb, çok karmaşık bir sistem için çözüm olabilir tek kısıtlama"," nihai değeri. neden bu kadar

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

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Lamborghini

    Lamborghini

    13 Aralık 2005
  • Drakinen

    Drakinen

    1 EYLÜL 2008
  • The10HourMan

    The10HourMan

    28 EYLÜL 2012