UIScrollView contentOffset在另一个视图推送后更改

Ser*_*yov 7 cocoa-touch interface-builder uiscrollview uiview ios

我有一个UIViewController在Interface Builder,和我添加UIScrollView的UIView.它具有contentOffset等于0.0 的属性,但是当我滚动UIScrollView到最底部并向另一个视图推送contentOffset更改时.

NSLog 给了我以下值:

//View just loaded
2013-09-09 16:19:27.455 my_app[24588:907] Scroll View content offset is 0.000000

//We came back from another view
2013-09-09 16:19:30.957 my_app[24588:907] Scroll View content offset is 108.000000
Run Code Online (Sandbox Code Playgroud)

这种行为的原因是什么?我刚刚UIScrollView在IB中添加了一个并且根本没有在代码中做任何事情.

在contentHeight滚动视图的比我的大self.view.height.在frame滚动视图中保持不变.

Ale*_*lex 12

对于iOS 7/8 self.automaticallyAdjustsScrollViewInsets = NO;解决了这个问题.


Ste*_*arp 10

请参阅我对类似问题的回答.

你需要contentOffset在viewWillAppear:和中适当地设置scrollview viewWillDisappear:.

另外,看到这个: