TableView прокручивается за последнюю ячейку

У меня есть 2 TableViews в ViewController, и я устанавливаю ограничения для них обоих. Я также устанавливаю ограничения и выравнивания. Проблема заключается в том, что при запуске выравнивания работают так, как ожидалось, однако, когда я выдвигаю TableView1 выше (чтобы опуститься на дно), он больше подталкивает последнюю ячейку (см. Скриншоты ниже).

Вот видео, показывающее проблему

И поведение горизонтального инспектора

Последнее обновление: я думал об обходном пути, но я не мог понять, как его применять. Если я могу получить y позицию последней строки внутри TableView, возможно, я могу заставить TableView не прокручиваться ниже «y position + height height». Есть ли способ, которым я могу это сделать?


Оригинальный вопрос :

Он работает нормально, когда он запускается и кажется ожидаемым, поскольку нижняя строка / ячейка внизу прикреплена к нижней части TableView

введите описание изображения здесь

(Красный – TableView1, а Pink – TableView2)

Но когда прокручивается и достигает дна, прокручивается больше, чем нижняя ячейка. Вместо этого нижняя ячейка должна быть прикреплена к нижней части TableView1.

(Синий цвет фона TableView1)

введите описание изображения здесь

В чем может быть проблема? Как я могу заставить нижний TableViewCell TableView1 подключаться к нижней части TableView1, так что больше не прокручивается?

Обновление: я создал высоту 132 TableView1 и каждую строку 44. Это создает разрыв как тот же размер 44. Но я проверил numberOfRowsInSection , и счетчик как и ожидалось, а не +1.

Почему это может произойти?


Update2: Я уверен, что это не код, но вот код

Ограничения TableView1:

введите описание изображения здесь

 let sampleData = [ PreviewDetail(title: "Small"), PreviewDetail(title: "Medium"), PreviewDetail(title: "Large"), PreviewDetail(title: "Large") func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell { var cell:UITableViewCell? if tableView == self.TableView1 { cell = tableView.dequeueReusableCellWithIdentifier("TV1Cell", forIndexPath: indexPath) let previewDetail = sampleData[indexPath.row] cell!.textLabel!.text = previewDetail.title } return cell! } func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int { var count:Int? if tableView == self.TableView1 { count = sampleData.count } return count! } 

2 Solutions collect form web for “TableView прокручивается за последнюю ячейку”

Наконец, я нашел ответ. Странно, когда у меня есть «Палуба просмотров», как ..

 TabBarController -> NavBarController -> ViewController -> View -> 2xTableViews 

… это вызывало багги. Я попытался воссоздать проблему в фиктивном проекте, чтобы понять суть проблемы, и это вызывало ту же проблему и в фиктивном проекте.

Ответ:

Ответ: « Adjust Scroll View Insets «Отменить Adjust Scroll View Insets в «ViewController». Теперь все работает нормально.

Хотя в вашем коде ошибок нет, когда я пытался воссоздать сценарий, я не смог его воспроизвести. Я использовал два UITableViews равной ширины, и обе ячейки tableViews являются базовыми по умолчанию. Вот код.

 class ViewController: UIViewController { @IBOutlet var tableView1:UITableView! @IBOutlet var tableView2:UITableView! let data1 = ["First Table, Data 1","First Table, Data 2","First Table, Data 3","First Table, Data 4","First Table, Data 5","First Table, Data 6","First Table, Data 7","First Table, Data 8"] let data2 = ["Second Table, Data 1","Second Table, Data 2","Second Table, Data 3","Second Table, Data 4","Second Table, Data 5","Second Table, Data 6","Second Table, Data 7","Second Table, Data 8"] override func viewDidLoad() { super.viewDidLoad() tableView1.dataSource = self tableView2.dataSource = self } override func didReceiveMemoryWarning() { super.didReceiveMemoryWarning() // Dispose of any resources that can be recreated. } } extension ViewController:UITableViewDataSource { func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int { if tableView.isEqual(self.tableView1) { return data1.count } else if tableView.isEqual(self.tableView2) { return data2.count } return 0 } func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell { if tableView == self.tableView1 //if tableView.isEqual(self.tableView1) { let cell = tableView.dequeueReusableCellWithIdentifier("Cell1") cell?.textLabel?.text = data1[indexPath.row] return cell! } else { let cell = tableView.dequeueReusableCellWithIdentifier("Cell2") cell?.textLabel?.text = data2[indexPath.row] return cell! } } } 
  • Как добавить таблицу pull table вверх для обновления данных внутри uitableview
  • Ярлык в пользовательской ячейке равен NULL при заполнении UITableViewController
  • Невозможно добавить PrototypeCell в UITableView внутри xib-файла
  • Вид таблицы, обозначающий более чем одну ячейку Swift 3
  • Может ли UIStackView также использоваться в UITableViewCell?
  • Свойство tableFooterView не фиксирует нижний колонтитул внизу таблицы.
  • iOS - viewForFooterInSection, прикрепляющийся к нижней части UITableView
  • Блокировка UISearchBar в верхней части UITableView, например Game Center
  • CKAsset не будет отображаться в виде таблицы
  • Панель навигации исчезает в представлении таблицы результатов поиска.
  • ios 7 uitableview cell долгое нажатие для изменения значения атрибута данных ядра
  • Interesting Posts

    Как сохранить клавиатуру от покрытия моего пользовательского интерфейса, а не изменять его размер?

    Добавить уведомление в массив результатов в реальном времени

    UIScrollView с переключаемыми кнопками

    Изменение угла перспективы справа налево, в iOS CATransformLayer с использованием CATransform3D

    UIActivityViewController: цвет оттенков представленных контроллеров представления

    ios Facebook добавить FBNativeAdView как Subview

    Изображение .png отображается как синие круги в iOS

    Доступ к iOS 7 скрыт UITableViewCellScrollView?

    Нет экземпляра UICollectionViewLayoutAttributes для layoutAttributesForSupplementaryElementOfKind: UICollectionElementKindSectionHeader

    Пользовательский UITableViewCell с XIB

    KVO и рефакторинг

    Внешний вид прокси – альтернатива setShadowImage для iOS 5?

    Как я могу программно уволить / отключить всплывающее окно, которое было введено в iOS 11?

    отсечение основного графического текста

    Запись звука с беспроводной гарнитуры и воспроизведение через динамик Bluetooth

    PhoneC: Разработка iOS проста с помощью XCode, Swift3, UITableView, cocatouch, давайте создадим приложения для iPhone, iPad и Macbook.