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! } } } 
  • Перезагрузка раздела tableView без перезагрузки раздела заголовка - Swift
  • Как найти массив словарей и показать в UITableview?
  • Лучший способ сделать подкачку в UITableView
  • Swift TableView для iOS
  • Subviews не обрезаны, чтобы прокрутить влево, чтобы удалить UITableViewCell
  • Когда вам нужно сбросить свойство view.frame после преобразования iOS
  • Ошибка UITableViewCell indexPath.row не отображается правильно
  • Обновление indexPath.row после удаления ячейки из представления таблицы
  • как установить выбранную галочку как отмеченную в tableview ячейке swift 3.0
  • Место UITableViewCell ниже братьев и сестер
  • Стиль редактирования UITableViewCell для определенных строк
  • Interesting Posts

    Как настроить неправильное распознавание OpenEars

    Лучшая практика объявления блоков Objective-C как переменных

    цвет фонового текста текста на странице pdf в iphone sdk

    Добавление кнопок внутри UISearchBar

    Подкласс UIControl – события, вызываемые дважды

    iOS: добавление фиксированного изображения чуть ниже навигационной панели

    iOS – Ошибка Linker после обновления до Xcode 4.5, возможно, связанного с Core Plot

    Предложения по управлению переходами входа / выхода

    iOS Facebook Войти, но не Connect?

    Запустить экран на Xamarin.iOS не показывается. Вместо этого отображается синий экран

    Открыть уведомление в настройках приложения прямо

    Руководство по программированию основных данных: слияние изменений с переходными свойствами

    Admob не загружает объявления для расширения приложения iOS 10 iOS

    где пример iOS Bluetooth LE периферийногоManager didReceiveWriteRequests

    Сохранить видео в определенной папке

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