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