UIScrollView 每次访问视图都会改变滚动位置
Posted
技术标签:
【中文标题】UIScrollView 每次访问视图都会改变滚动位置【英文标题】:UIScrollView change scroll position every visit of the view 【发布时间】:2012-04-27 13:50:27 【问题描述】:我有一个带有 UIView 的 UIViewController,在视图中我有一个 UIScrollView,我以这种方式初始化了 UIViewController:
if (!self.detailViewController)
self.detailViewController = [[[DetailViewController alloc] initWithNibName:@"DetailViewController" bundle:nil] autorelease];
当我进入视图时,UIScrollView 在顶部滚动,如果我返回 MasterView,然后我再次进入 DetailView,视图将滚动到某个位置,如果我返回,然后我再次返回视图,视图在底部的另一个位置滚动,再次滚动,每次我进入时,UIScrollView 每次都会在底部滚动一点,所以我的问题是为什么?...我怎么能每次我进入视图时都设置为顶部?
我试过这个:
[self.myScrollView scrollRectToVisible:CGRectMake(0, 0, self.myScrollView.frame.size.width, self.myScrollView.frame.size.height) animated:NO];
在 viewWillAppear 方法中但不更改任何内容,所以我将它放在 viewDidAppear 方法中,当我进入时我看到它返回到顶部,所以我的问题是如何将 uiscrollview 设置为始终显示在顶部?
【问题讨论】:
【参考方案1】:试试[self.myScrollView scrollRectToVisible:CGRectMake(0, 0, 10, 10) animated:NO];
【讨论】:
随着视图中的那一行出现,以这种方式工作:我第一次进入一如既往地在顶部,返回重新进入并且它有点滚动到底部,返回重新进入并它在顶部,并重复这个循环,所以向前迈了一步,首先在底部滚动更多,并且越来越多......但这并不完美......其他想法? :( 我猜这取决于它向下滚动的程度,您可能想尝试CGRectMake(0, 0, 1, 1)
确认 viewWillAppear 确实被调用了吗?以上是关于UIScrollView 每次访问视图都会改变滚动位置的主要内容,如果未能解决你的问题,请参考以下文章
UIScrollView setContentOffset:(0,0) 改变视图?
当 UIScrollView 内容改变时更新 UITableView