我的UITableView
有一堆可重复使用的单元格,当我点击其中一个单元格时,它会带我到另一个视图控制器(通过push segue)显示该单元格的细节这是一个项目,所以它会显示有关项目的详细信息 - 名称,价格,图片等)。当我弹出视图控制器(通过点击后退按钮),UITableView
有一个奇怪的行为:UITableViewController在弹出视图控制器后的奇怪行为
a)如果它一直滚动到底部,它会自动滚动(大约50点),留下最后一个细胞几乎不可见,所以我不得不再次向下滚动。我的牢房都有60个高度。
b)滚动条总是显示然后消失,表明有东西在移动UITableView
(尽管如果没有滚动到底部,内容将不会自动移动)。
这发生在多个UITableView
的我在我的应用程序中。我不强制重新加载viewWillAppear中的表视图,所以我不明白发生了什么。从服务器加载后,我的内容是静态的(除非用户更改它,然后执行重新加载)。但只是简单地显示一个项目的细节并弹出该VC并不会改变表格视图中的任何内容。
编辑:好吧,我已经想出了问题是什么:我在推动segue时隐藏了UIToolbar
。如果我保持它始终可见(我不想),它仍然显示在弹出我的表格视图时动画的滚动条,但如果在最后几行不滚动表格视图。
你能否更详细地解释为什么会发生这种情况?或者可以有人。 – Krtko
其惊人的......解决了类似的问题......问题是,无论何时从视图控制器导航回来,tableview的滚动偏移量都会相应地改变。因此,您需要捕获prePareForSegue:方法内的属性(即,在导航之前)中的contentoffset值,然后检查viewWillAppear:method内的同一个类中的值。如果更改,则将scrolloffset属性值设置为零 –