2014-11-19 20 views
17

Otomatik düzenini kullanarak ve yalnızca dikey desteği kullanarak Swift'teki iOS Evrensel Uygulamasını geliştiriyorum.Neden viewdidlayoutsubviews birden çok kez çağrı yapıyor?

Birden çok kez adlı UIViewController#viewdidlayoutsubviews buldum. Bunun yerine, viewDidLoad SADECE MyApp'ın UIViewController'ı başlatırken bir kez arayın.

Neden viewdidlayoutsubviews birden çok kez arayabilir? Her UIView (UIButtons, UITextFields vb.) Üzerindeki kısıtlamalar sırayla mı gerçekleştirilecek?

Herhangi bir Bilgi takdir edilecektir. Görünümün yüklenmesi gerektiğinde, yalnızca şu şekilde adlandırılır:

cevap

18

.

Ancak setNeedsLayout veya setNeedsDisplayInRect üzerinde adı edilmiş herhangi bir görünümde kez çalışma döngüsü başına adlandırılır

LayoutSubviews - bir Subview boyutlandırma, kaydırma, görünüm eklendi zaman bu içerir, vb

bakınız Daha fazla bilgi için this linki. Objective-C kullanır, ancak bilgi hala geçerlidir.

+0

SetNeedsLayout & setNeedsDisplayInRect öğesinin ne olduğuna biraz daha açıklayabilir misiniz? Bağlantılı sayfayı anlayamadım .. –

+0

[setNeedsLayout' hakkında iyi bir açıklama için [bu yorumu] (http://stackoverflow.com/a/13542580) kontrol edin –

0

yapılacak en iyi şey ve bu çok işe yaradığını - "(> baskı - Eğer

bunu kullanmaktan emin hangi yöntemlere bir günlük veya baskı deyimi ekleyerek alışkanlığı için elde etmektir Merhaba itibaren (NSStringFromSelector (#function)) ")

veya bu eğer bir Görünüm Altsınıf Swift.print içindeki (" Merhaba itibaren (NSStringFromSelector (#function)) Bu yöntemi yazdırır

") ne zaman çağrılıyor.

İlgili konular