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! } } } 
  • Использование фонового представления для UITableViewCell в iOS 7 включает кнопку удаления по умолчанию
  • iOS TableView отображает один и тот же объект в каждой ячейке
  • Когда обновляется размер содержимого UITableView с анимацией вставки / удаления строки
  • Как удалить последнюю границу последней ячейки в UITableView?
  • выделение выделения индекса таблицы
  • MKLocalSearch БЕЗ MKMapView
  • Добавьте UINavigationController, вложенный внутри контроллера представления контейнера в UITabBarController
  • Слайд таблицы открывается под панелью навигации, когда пользователь кратковременно
  • IOS 7 UITextView обнаружение связи в UITableView
  • iOS * Производительность ячеек: Autolayout vs Frame?
  • Weird UITableView вставка / удаление строки анимации
  • Interesting Posts

    перерисовать вид с экрана – содержит представление выбора и панель инструментов

    Сохранить аудиопоток в mp3-файл (iOS)

    RestKit vs AFNetworking

    iOS 7 + iPad: UISearchBar вызывает смешивание содержимого навигационной панели со строкой состояния

    Внедрение NSUndoManager

    Устройства iOS не отображаются на Xcode 6.1.1 – до перезагрузки Mac

    GCD вместо gameloop?

    Смешивание добавок UIKit

    Как хранить информацию о пользователях с помощью DynamoDB и Cognito, используя аутентификацию Facebook с помощью iOS SDK

    iOS 10.3: NSStrikethroughStyleAttributeName не отображается, если применяется к поддиапазону NSMutableAttributedString

    Разница между NSManagedObject, NSManagedObjectContext и NSManagedObjectModel

    С чего начать на аудио синтезаторе iOS?

    Разница между сертификатами разработки и производства SSL в iO?

    UISearchBar не будет скрывать клавиатуру на resignFirstResponder при переходе на другой контроллер представления

    Получите День со дня в iOS sdk

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