Сброс границ UILabels при загрузке представления дает сбой (iOS) - PullRequest
0 голосов
/ 14 декабря 2011

У меня есть UIViewController с .xib, имеющим 2 UILables с именами "LblA" и "LblB".Давайте назовем этот ViewController «A».Границы или расположение LblA и LblB зависят от свойств @, называемых lblABounds и lblBBounds соответственно.Если значения lblABounds и lblBounds не установлены, lblA и lblB располагаются в границах по умолчанию, поскольку они размещаются с использованием Interface Builder в .xib.Новые границы, полученные из lblABounds и lblBBounds для lblA и lblB, устанавливаются в функции ViewDidLoad ().

Существует еще один UIViewController (давайте назовем его «B»), который загружает «A».Сначала вызывается инициализация «А» для получения объекта.Затем, используя этот объект, он устанавливает значения lblABounds и lblBBounds.А затем просто анимирует и загружает ViewConroller, добавляя его как подпредставление «B».Все отлично работает, кроме ...

глюк:

B оживляет и переворачивает, чтобы показать A. Но пока он переворачивается, для взгляда, lblA и lblBрасположены по умолчанию, но как только анимация заканчивается, они просто poof перемещаются в местоположение, заданное значениями lblABounds и lblBounds.

Предполагаемая причина этого сбоя:

Поскольку позиции lblA и lblB, полученные из значений lblABounds и lblBBounds, задаются в ViewDidLoad.Таким образом, в то время как это анимация, представление фактически не было загружено, и ViewDidLoad не был вызван так, для краткого обзора lblA и lblB расположены в местоположении по умолчанию.Как только представление выполнено с анимацией и вызван ViewDidLoad, lblA и lblB исчезают - появляются из местоположения по умолчанию в местоположение, заданное значениями lblABounds и lblBBounds.

Исправления, которые у меня естьпытался, но не работал

  • Установка новых границ lblA и lblB в init ().Ничего не происходит: S Ни один из кодов не выполняется.

... Пожалуйста, помогите.Надеюсь, я хорошо объяснил.

1 Ответ

3 голосов
/ 14 декабря 2011

Надеюсь, я правильно понял вашу проблему.

Вы также можете попробовать загрузить представление, прежде чем добавить его в качестве подпредставления. Это заставит представление загрузить метод для вызова и установит позиции меток перед вызовом анимации. Чтобы принудительно загрузить контроллер представления для просмотра, вам нужно запросить свойство представления

viewController.view

Надеюсь, это поможет!

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