У моєму додатку для 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
як висота: заголовок, колонтитул та висота кожної комірки, що додаються разом.