4

我想将selected rowa设置UITableViewrefresh control. 我这样做是因为我的顶部有一个刷新控件UITableView,并且当我加载数据时(实际上它们并没有通过将其拉下而导致它),我希望它activity indicator view是可见的(这是refresh control)。

现在,我所做的就是将其设置refresh control为“刷新状态”(具有旋转活动指示器)。

[self.refreshControl beginRefreshing];

这很好用,但唯一的问题是,除非上拉,否则他们看不到它,因为它是第 1 行(索引 0)的默认值,所以它是隐藏的。

注意:在发生这种情况时,有 0 个项目(并且永远都是)UITableView

例如,如果我去:

[self.tableView selectRowAtIndexPath:0 animated:YES scrollPosition:UITableViewScrollPositionTop];

它将所选项目的位置设置为第一行,但我想让它显示刷新控件,所以我想可能会这样做:

[self.tableView selectRowAtIndexPath:-1 animated:YES scrollPosition:UITableViewScrollPositionTop];

会工作(因为它是第一项下方的 1 个索引),但当然不会编译。

4

1 回答 1

2

因为 UITableView 是 UIScrollView 的子类,所以可以通过设置 tableView 的 contentOffset 来在第一行上方显示刷新控制器。例如,如果您的刷新控件的高度为 100,您可以将刷新控件动画化到视图中。

[self.tableView setContentOffset:CGPointMake(0, -100) animated:YES];

或者只是在没有任何动画的情况下显示它或实现您自己的动画:

self.tableView.contentOffest = CGPointMake(0, -100);

刷新完成后,您可以将其设置回 0,并且您想要隐藏控件。

文档链接在这里

于 2013-02-17T15:05:15.757 回答