UIScrollView在pushViewController上自动滚动到(0,0)

时间:2014-08-13 06:47:32

标签: ios objective-c uiscrollview

我有一个UIScrollView包含一个UICollectionView和一个UITableView并排autolayout。 collectionView的原点是(0,0),tableView是(320,0)。现在,当在tableView中选择一行时,另一个视图控制器被推送到scrollView上,自动滚动到(0,0)而没有动画。

日志

2014-08-13 12:08:05.466 Flat.to[23057:613] ScrollView.contentOffset: {320, 0} 2014-08-13 12:08:05.466 Flat.to[23057:613] ScrollView.contentSize: {640, 500} 2014-08-13 12:08:06.690 Flat.to[23057:613] Did select row 2014-08-13 12:08:06.695 Flat.to[23057:613] View will disappear called 2014-08-13 12:08:06.698 Flat.to[23057:613] ScrollView.contentOffset: {0, 0} 2014-08-13 12:08:06.699 Flat.to[23057:613] ScrollView.contentSize: {640, 500} 2014-08-13 12:08:07.235 Flat.to[23057:613] View did disappear called

因此,pushViewController动画看起来有点小故障。

虽然我可以在viewWillDisappear中保存contentOffset但是有没有办法完全防止这种情况发生?

我可以覆盖viewWillDisappearviewDidDisappear之间的任何函数调用吗?

1 个答案:

答案 0 :(得分:0)

是的,包含scrollview的viewcontroller的 viewWillAppear 方法将在viewController的viewDidDisapear之后调用,该视图将是popOut。在那里你可以设置scrollVIew的内容偏移量。