пользовательский метод в пользовательском представлении для макета подпредставления или использование layoutSubviews / layoutIfNeeded - PullRequest
2 голосов
/ 04 августа 2011

У меня есть пользовательский UIView, который используется в UIViewController. Пользовательский вид требует некоторого пользовательского / программного макета. То, что я сейчас делаю, это то, что внутри метода контроллера «viewDidAppear» я вызываю собственный метод представления, который я наделил «layoutThisView». Кажется, это работает хорошо.

ВОПРОС - Должен ли я / вместо этого использовать методы UIView layoutSubviews / layoutIfNeeded? это поможет / будет лучше?

1 Ответ

4 голосов
/ 04 августа 2011

Вероятно, было бы лучше использовать layoutSubviews. Cocoa Touch отправит это сообщение автоматически, когда представление требует макета по любой причине - изменение размера, изменение ориентации, что угодно. В общем, иди с фреймворком везде, где можешь.

Одно предостережение: я считаю, что прокрутка UIScrollView может привести к вызову layoutSubviews в содержащем его представлении, поэтому вы можете захотеть сделать что-то вроде проверки того, что границы вида действительно изменились перед выполнением определенных типов макета тот случай. Я был бы рад, чтобы комментатор разъяснил это, хотя - это просто то, с чем я столкнулся, а не то, что я тщательно протестировал.

...