0

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

此时,滚动视图应该仍然聚焦先前选择的播放器,而是从头开始显示它。所以问题是:是否有一种方法可以自动滚动到滚动视图中的特定位置,以便屏幕仍然具有选定的播放器焦点?

4

2 回答 2

1

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

[myScrollView setContentOffset:myCGPoint animated:YES];

或者,如果您希望滚动视图看起来已经滚动到正确的位置,请执行相同的操作,但viewWillAppear将动画标志设置为NO.

于 2012-12-07T20:41:37.543 回答
1

是的,有两个:

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

您可以在UIScrollView 类参考中了解这两种方法。无论哪种方式,您都可以使用实例变量来存储用户滚动时的内容偏移量或可见矩形,然后使用我上面列出的方法之一在播放器数据更新时恢复滚动视图位置。

根据您所做的工作,您可能会发现 UITableView 更易于实现,因为它是非常可定制的“开箱即用”,并且它有很多方法可以帮助管理列表(包括我上面提到的那些,等等) . 如果您有兴趣,请查看UITableView 类参考

于 2012-12-07T20:43:56.013 回答