我正在创建一个显示过去事件记录的UITableView。在我在顶部添加搜索栏之前,这一切看起来都很棒。当它滚动到顶部时,它看起来就像我想要的那样:
但是,当我滚动到底部时,现在有一堆空白区域。在这个截图中很难说是没有屏幕边框,但是桌面滚动将停留在这个屏幕上,大约一半的页面空白:
有趣的是,当我完全激活搜索栏(即点击其中然后按取消)时,空白区会消失,直到此视图再次出现。
我已经尝试过各种各样的tableView设置,以及在视图布局过程的各个阶段使用reloadData()都无济于事。我知道行数是正确的。我发现让白色空间消失的唯一方法是禁用搜索栏。但我想要搜索栏!
以下是搜索栏的代码:
self.resultSearchController = ({
let controller = UISearchController(searchResultsController: nil)
controller.searchResultsUpdater = self
controller.dimsBackgroundDuringPresentation = false
controller.searchBar.sizeToFit()
controller.searchBar.placeholder = "Search by keyword, name, etc."
controller.searchBar.barTintColor = UIColor(red: 224/256, green: 244/256, blue: 255/256, alpha: 1)
controller.searchBar.delegate = self
self.pastServicesTable.tableHeaderView = controller.searchBar
return controller
})()
答案 0 :(得分:1)
同样的事发生在我身上。在viewDidLoad中说明tableview行高(即self.tableView.rowHeight = 350)修复了它。
答案 1 :(得分:0)
您似乎正在观察UIKeyboardWillShowNotification
& UIKeyboardWillHideNotification
并更改tableView的contentInset
(将keyBoard大小高度添加到contentInsets),并在键盘隐藏时不将contentInsets设置为UIEdgeInsetsZero
。
答案 2 :(得分:0)
我以这种方式解决了额外的底部空间(在 viewDidLoad 中):
tableView.rowHeight = UITableView.automaticDimension
tableView.estimatedRowHeight = 200 // should be more than real row height will be