2012-12-07 162 views
0

我已经实现了具有动态内容的滚动视图:多个子视图显示玩家名下的玩家的照片。流程如下: 1.在主窗口上选择一名玩家。 2.用户启动另一个视图来添加新玩家。 3.当用户返回主菜单时,滚动视图会完全刷新,以便新玩家的照片和名称也显示出来。自动滚动到滚动视图中的子视图

此时,滚动视图仍然应该有先前选中的播放器进行对焦,而是从一开始就显示它。 所以问题是:是否有一种方法可以自动滚动到滚动视图中的特定位置,因此屏幕仍然让选定的播放器处于焦点?

回答

1

很简单,创建一个CGPoint和一个BOOL,您可以在视图更改后保留并在您最初离开该页面时设置它们。然后在viewDidAppear,你可以检查BOOLYES与用途:

[myScrollView setContentOffset:myCGPoint animated:YES]; 

或者,如果你想滚动视图显示已经滚动到正确的位置,做同样的事情,除了在viewWillAppear与动画标志设置到NO

1

是的,有两种:

(1) scrollRectToVisible:animated: 
(2) setContentOffset:animated: 

你可以阅读有关在UIScrollView Class Reference这两种方法。无论哪种方式,您可以使用实例变量在用户滚动时存储内容偏移量或可见矩形,然后使用上面列出的方法之一在更新玩家数据时恢复滚动视图位置。

根据你在做什么,你可能会发现UITableView更容易实现,因为它是非常可定制的“开箱即用”,它有很多方法来帮助管理一个列表(包括我上面提到的那些, 和更多)。如果你有兴趣,看看UITableView Class Reference