在我的应用程序中,我有一个UISearchBarunder,UINavigationBar因此它始终对用户可见.在这种情况下,我必须设置contentInset额外的44px,因此UIScrollView将滚动UISearchBar (完全像在Contacts.app中).静态UITableView的没有问题,但在我的情况下,我必须重新加载它的内容,切换到UISearchDisplayController等等.所以当我打电话时:
[self.tableView setContentInset:UIEdgeInsetsMake(108, 0, 0, 0)];
Run Code Online (Sandbox Code Playgroud)
一切都有效,直到我拉动刷新......(为此我使用SSPullToRefresh).
所以我的问题是:如何contentInset永久设置,以便我不必担心内部数据发生任何变化UITableView?
在iOS 6中,分组表视图似乎在底部有额外的填充(iOS 5没有它),但我找不到任何表明这是正确/预期行为的文档.
这也会影响示例项目,例如示例中的SimpleTableView项目TableViewSuite.我想我必须将样式AppDelegate改为'分组',并将SDK更新到iOS 6,但没有对该项目进行其他更改.
调查显示,10px保留了页眉和页脚视图,以及一些20px无法解释的视图.没有实际的页眉或页脚视图(tableHeaderView并且tableFooterView正在nil执行和返回nil,例如viewForFooterInSection什么都不做).我在tableView上找不到任何'20'值,虽然我可能错过了一些东西.
为页脚添加零大小视图不会做任何事情,但添加1px方形视图会导致额外的填充消失.例如:
tableView.tableFooterView = [[UIView alloc] initWithFrame:CGRectMake(0,0,1,1)];
Run Code Online (Sandbox Code Playgroud)
它确实占据了1px高度,所以现在是底部填充11px,但这远不如20那么明显.现在设置sectionFooterHeight为0将仅1px产生底部空间.
我的问题是:什么?我怎样才能完全删除它?这不是任务关键任务,但它非常奇怪,不可取,而且据我所知,它没有记录.
请注意 - 从Apple开发论坛复制过去的问题.但我有完全相同的问题,我也不明白如何解决它.
是的,我已经阅读了很多关于这个问题的其他帖子,这些解决方案对我来说都没有用!
基本上,当我使用viewForFooterInSection和heightForFooterInSection时,生成的页脚"浮动"
viewDidLoad和FooterView代码:
override func viewDidLoad() {
super.viewDidLoad()
setupNaviationBarStyles()
setUpNavBarButtons()
navigationItem.title = "Kindle"
tableView.register(BookCell.self, forCellReuseIdentifier: "cellId")
tableView.backgroundColor = UIColor.lightGray
fetchBooks()
}
override func tableView(_ tableView: UITableView, viewForFooterInSection section: Int) -> UIView? {
let view = UIView()
view.backgroundColor = .red
return view
}
override func tableView(_ tableView: UITableView, heightForFooterInSection section: Int) -> CGFloat {
return 50
}
Run Code Online (Sandbox Code Playgroud)
这个问题似乎是针对iPhone x的?在iPhone 7模拟器中,上面的代码完美地运行:
我试图在viewDidLoad中创建一个自定义视图,就像很多其他线程一样,但还没有这样的运气:
let view: UIView = UIView(frame: CGRect(x: 0, y: 0, width:
tableView.frame.size.width, height: 40))
view.backgroundColor = .red
self.tableView.tableFooterView = view
Run Code Online (Sandbox Code Playgroud)
我很欣赏这个问题的任何帮助,似乎解决方案可能很简单,但我已经研究了一段时间,并且在使用iPhone …