Когда вызывается метод layoutSubviews? - PullRequest
5 голосов
/ 03 апреля 2012

Я прошу учебник , в котором упоминается следующий метод:

-(void)layoutSubviews

находится в CustomerCell.m

Когда этот метод вызывается во время выполнения приложения? Это автоматически вызывается? Я не вижу никакого обратного вызова.

Ответы [ 3 ]

12 голосов
/ 03 апреля 2012

Вы найдете ответ здесь

РЕДАКТИРОВАТЬ: скопировано непосредственно из блога:

  • init не приводит к вызову layoutSubviews (duh)
  • addSubview заставляет layoutSubviews вызываться при добавлении представления, представлении, в которое он добавляется (представление цели), и всех подпредставлениях представления представления
  • setFrame интеллектуально вызывает layoutSubviews для представления, для которого установлен его кадр, только если параметр размера кадра отличается
  • прокрутка UIScrollView приводит к вызову layoutSubviews для scrollView и его суперпредставлению
  • вращение устройства вызывает layoutSubview только для родительского представления (первичное представление отвечающего viewControllers)
  • removeFromSuperview - layoutSubviews вызывается только для суперпредставления
1 голос
/ 03 апреля 2012

Метод layoutSubviews будет вызываться каждый раз, когда система считает, что ваше представление необходимо снова выложить.Например, если кадр представления изменен или добавлено подпредставление, и т. Д. Если вам нужно запустить это вручную, вы можете вызвать метод setNeedsLayout.

1 голос
/ 03 апреля 2012

Вы правы.Макет подпредставлений вызывается автоматически.Проверьте документы для получения дополнительной информации об этом.

В документах конкретно не сказано, КОГДА это называется.Тем не менее, вы можете гарантировать, что он вызывается довольно часто.Вы действительно хотите переопределить этот метод только тогда, когда вы не можете изменить размеры своих подпредставлений или переместить их, используя распорки и пружины.Одним из примеров будет реорганизация позиций подпредставлений, когда устройство меняет ориентацию.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...