У меня есть несколько таблиц (сгруппированных стилей) в моем приложении для 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
это высота: верхний и нижний колонтитулы, а также высота каждой ячейки, добавленной вместе.