Сделать UITableView не прокручиваемым и настроить высоту для размещения всех ячеек
Я вставляю UITableView
внутри другого UIScrollView
. Я хочу, чтобы прокрутка UIScrollView
прокручивалась, а не UITableView
, поэтому я хочу отключить прокрутку в UITableView
, а также развернуть contentHeight
для UITableView
для одновременного размещения всех динамиков.
Как мне это сделать?
Ответы
Ответ 1
Вам нужно установить прокрутку UITableView
на false
,
tableview.scrollEnabled = false;
tableview.frame = CGRectMake(tableview.frame.origin.x, tableview.frame.origin.y, tableview.frame.size.width, tableview.frame.size.height+(resultArray.count*HEIGHT_OF_CELL));
И затем вы можете добавить UITableView
в UIScrollView
, установив его размер содержимого как UITableView
height.
Ответ 2
Установите размер таблицы TableView равным содержанию.
override func viewDidLayoutSubviews() {
tableView.frame.size = tableView.contentSize
}
Ответ 3
- Сделайте свой кадр таблицы видимым для всех линий → нет прокрутки для представления таблицы
- Установите contentSize вашего scrollview = размера ваших табличных представлений.
Ответ 4
В то время как это очень просто сделать с табличным представлением с фиксированным контентом в качестве подсмотра в scrollview, что именно вы пытаетесь достичь? Динамические ячейки с фиксированным содержимым выше и ниже? Постоянно отображаемый контент со скользящей секцией в центре?
Возможно, в более чистом дизайне будет использоваться один UITableView с верхним и нижним колонтитулом таблицы или верхний колонтитул раздела нижнего колонтитула, использующий автоматическое поведение, предоставляемое UITableViewStyleGrouped vs UITableViewStylePlain
Тем не менее, другие ответы, похоже, создают достойное решение:
Set scroll enabled false on table view
Set tableview content size to sum of all cell sizes
Set tableview frame to content size
Adjust scroll view frame to account for dynamic table size if necessary
Add table view to scroll view amidst other content
Другим вариантом манипулирования поведением прокрутки будет проверка просмотра таблицы или прокрутки в прокрутке делегата viewStartScrolling или аналогичных методах, поскольку это позволит повысить гибкость над элементами пользовательского интерфейса.
Ответ 5
- Прежде всего вам нужно настроить прокрутку
UITableView
на NO
-
Во-вторых, создайте height constraint
для представления таблицы и после вызова [UITableView reloadData]
измените свой height constraint
tableViewHeightConstraint.constant = numberOfRows * heightOfEachRow;
Ответ 6
UITableView - это вид прокрутки. Хотя вы не должны вставлять UIScrollviews, вы можете отключить прокрутку представления таблицы.