Подтвердить что ты не робот

Сделать UITableView не прокручиваемым и настроить высоту для размещения всех ячеек

Я вставляю UITableView внутри другого UIScrollView. Я хочу, чтобы прокрутка UIScrollView прокручивалась, а не UITableView, поэтому я хочу отключить прокрутку в UITableView, а также развернуть contentHeight для UITableView для одновременного размещения всех динамиков.

Как мне это сделать?

4b9b3361

Ответ 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, вы можете отключить прокрутку представления таблицы.