当我单击表格视图中的一个单元格时,它会打开一个包含以下代码的新视图:
let fullResView : FullResponseViewController = self.storyboard?.instantiateViewControllerWithIdentifier("FullResponseView") as! FullResponseViewController
fullResView.receivedPost = post
self.navigationController?.pushViewController(fullResView, animated: false)
当我按下时,它会增加表格视图和顶部布局指南之间的距离。表示:
层次:
表格视图的约束是:
我尝试过以下方法:
在viewWillAppear中设置:
self.responsesTableView.contentOffset = CGPointMake(0, 0)
self.automaticallyAdjustsScrollViewInsets = false
当我按下,然后切换到标签栏中的另一个视图,然后再次切换回来时,这确实有效。没有contentOffset
它将永远保持这样。
答案 0 :(得分:12)
正如我所看到的OP图像看起来像导航半透明属性问题。因为推动一个viewcontroller后有相同的44px空白区域。所以这意味着如果您的导航半透明属性为真,那么您的UITableview
从第0个Y位置开始。如果您的导航半透明属性为false,则UITableview
从44px Y位置开始。
所以我猜想在UINavigation的半透明变成真假的情况下推送和返回。在DidFinish方法的appdelegate类中添加一行:
UINavigationBar.appearance().translucent = false
这是appearance
的{{1}},用于在您的项目中使这个虚假的全球化。希望能解决你的问题。
答案 1 :(得分:0)
我不确定这是否与您的特定问题有关,但值得检查您的UITableView
是否是您屏幕上的第一个控件:
Why is there extra padding at the top of my UITableView
即使在最新版本的Xcode中,这也是一个错误。但如果你知道如何绕过它,它很容易修复。