2015-07-02 3 views
1

Я испытываю странное поведение в своем UITableView. В моем приложении, когда сначала отображается UIViewController, который содержит таблицуView (ViewDidLoad?), Все его элементы (от ячеек до UISearchBar) оживляют их размеры и, наконец, получают правильные размеры. После этого (ViewWillAppear ...) каждый раз, когда я представляю это представление, все выглядит хорошо. Я использую Autolayout в Storyboard, и это похоже на то, что ограничения ожидают их правильные значения. Я использую Swift 1.2, Xcode 6.4, и это приложение на основе UITabBar. Любые идеи, что я делаю неправильно? Благодаря!UITableView макет анимации при первой загрузке

EDIT: Мой UITableView использует саморазмерные ячейки с размером UITableViewAutomaticDimension. Он также содержит UISearchBar.
| панель поиска |
| --- cell 1 --- |
| --- cell 2 --- |
...

+0

может быть эта запись http://stackoverflow.com/questions/24984650/autolayout-breaks-constraints-when-layoutifneeded-is-called –

+0

Вы используете ios7 или 8? Также это происходит и при прокрутке? – jarora

+0

@jarora Я использую iOS 8, и этого не происходит при прокрутке, только при первой загрузке. Я заметил одно и то же поведение в другом представлении таблицы, когда я увольняю клавиатуру, для ячеек, которые покрыты клавиатурой. – MrTourkos

ответ

0

Это обычно происходит, когда выполняется анимация, когда ячейки в представлении таблицы собираются загрузить. Попробуйте изучить все анимации в вашем файле и посмотреть, какой блок анимации добавляет эти анимации в ячейки просмотра таблицы.

Также, если вы используете анимационные ограничения с использованием блока анимации UIView, звоните [self.view layoutIfNeeded] перед блоком анимации и внутри блока.

Смежные вопросы