Макет UITableView анимируется при первой загрузке

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

РЕДАКТИРОВАТЬ: в моем UITableView используются ячейки с автоматическим изменением размера с высотой UITableViewAutomaticDimension. Он также содержит UISearchBar.
| панель поиска |
| --- ячейка 1 --- |
| --- ячейка 2 --- |
...


person MrTourkos    schedule 02.07.2015    source источник
comment
solition может быть этой записью. http://stackoverflow.com/questions/24984650/autolayout-breaks-constraints-when-layoutifneeded-is-called   -  person Özgür Ersil    schedule 02.07.2015
comment
Вы используете ios7 или 8? Также это происходит при прокрутке?   -  person jarora    schedule 06.07.2015
comment
@jarora Я использую iOS 8, и этого не происходит при прокрутке, только при первой загрузке. Я заметил такое же поведение в другом табличном представлении, когда я отключаю клавиатуру, для ячеек, которые покрыты клавиатурой.   -  person MrTourkos    schedule 06.07.2015


Ответы (1)


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

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

person jarora    schedule 07.07.2015