2016-03-21 13 views
0

bir Subview oluşturmak için Otomatik düzeni ile kısıtlı çerçeve kullanımı, sonra [self.boundView layoutIfNeeded] çağrı kontrol olarak, o zaman boundView en subview boyutunu oluşturmak için bir yönteme self.boundView.frame.size geçmesi CardView. Ve sonra programlı subview oluşturmak içinIOS: IB ve otomatik düzen kullanılarak <code>boundView</code> adlı bir görünüm oluşturmak

PlayingCardView *playingCardView = [[PlayingCardView alloc]initWithFrame:frame]; 

kullanın. Alt görünümün boyutunun süper görüntüden daha küçük olduğunu kontrol etmek için NSLog kullanıyorum. Ancak alt görünümü eklemek için [self.boundView addSubview:CardView]'u kullandığımda. Süper görüntüden daha büyüktür! Koordinatta bir sorun mu var? Yoksa Auto Layout'u kodla oluşturduğum görünümle birleştirdiğim için mi?

+0

autolayout statik verileri – techloverr

+0

gerçek zamanlı otomatikleştirme değişim çerçevesini çalışma zamanında birleştirmemelisiniz ... boundView.frame.size öğesini seçtiğinizde, aslında IB'nin çerçeve görünümünü alıyorsunuz ... autodeout tarafından ayarlanan çerçeve değil –

+0

Bu, otomatik düzen tarafından ayarlanan görünümün doğru çerçevesini alamam anlamına mı geliyor? Boyutu sadece statik çerçeve kullanarak ayarlayabilir miyim? –

cevap

1

Bunu nerede yapıyorsunuz? viewDidLoad’da bulunuyorsa, o zaman otomatik boyutlandırma boyutları henüz hesaplanmayacaktır. viewDidLayoutSubviews'da yapmayı deneyin.

+0

Zaten denedim, ve benim yöntemimde 'layoutIfNeeded' denemeye çalışıyorum.Ama hala işe yaramazsa. @Divyanshu Shama'nın yorumda söylediği şeyin doğru olduğunu düşünüyorum. Her zaman IB'nin 'boundView'den daha büyük bir bakış açısını elde ediyorum. Otomatik çerçeveden ziyade çerçeveyi kod olarak ayarlamak zorundayım. –

+0

Peki, her zaman IB boyutunu alamazsınız - bu hiç mantıklı olmaz. Sadece görüş açıldıktan sonra yapmanız gerekir. Bununla birlikte, aslında bu sizin kurulumunuz hakkında daha fazla bilgi sahibi olmamanız sorunu göremiyor. Belki daha fazla kod sağlayabilirsin. Ayrıca, bize tam olarak nerede yaptığınızı söyleyin, diğer bir deyişle, sadece "kontrolörde" deyip, hangi yöntemi kullanın. – pajevic

+0

Eh, nihayet bu sorunun cevabını buldum.Sadece kodumu tekrar kontrol edin ve "viewDidLoad" yönteminde bir yöntem çağıracağımı ve bu yöntemde "layoutIfNeeded" ifadesini aradığımı görün. Otomatik düzende boyut hesaplanmadı, her zaman yanlış boyutu alıyorum. "ViewDidLoad" öğesinde "layoutIfNeeded" ifadesini çağırarak düzeltmeye çalışıyorum, ancak sonuç yukarıdaki gibi aynıdır.Şimdi, "viewDidLayoutSubviews" yöntemimi aradım ve sonunda doğru çerçeveyi alıyorum. Çok teşekkürler! –

İlgili konular