В моем приложении для iphone есть несколько таблиц (сгруппированных стилей) (только на части экрана, добавленных с помощью Interface Builder
, но не в подклассах от UITableViewController
), которые в 80% случаев малы и подходят дляэкран.Когда таблица уместится на экране, я бы хотел отключить прокрутку, чтобы она стала чище.Но если таблица исчезает с экрана (когда к ней добавляются строки), я бы хотел снова включить прокрутку (потому что в противном случае вы не сможете увидеть это содержимое).
Есть ли способ сделать это?этот?Я не могу понять это.Я знаю, что делать:
tableView.scrollEnabled = NO;
, но я не уверен, где или нужно ли мне вычислять размер объекта таблицы или что-то еще, чтобы заставить это работать.
Обновление : Вот решение, которое наконец-то сработало для меня:
if (table.contentSize.height < table.frame.size.height) {
table.scrollEnabled = NO;
}
else {
table.scrollEnabled = YES;
}
Я запускаю этот код после вызова reloadData
для таблицы, и он вычисляет правильные размеры и, кажется, работает.
table.frame.size.height
- это фактический размер объекта (вы можете увидеть это в Interface Builder
), отображаемый на экране, тогда как table.contentSize.height
- это высота: верхний и нижний колонтитулы, а также высотакаждая ячейка складывается вместе.