UITableView将所选行设置为刷新控件

时间:2012-12-21 03:52:38

标签: objective-c ios xcode

我想将selected row设置为UITableViewrefresh control。我这样做,因为我的UITableView顶部有一个refresh control,当我加载数据时(并且实际上并没有将它拉下来),我希望{ {1}}可见(这是activity indicator view的一部分)。

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

refresh control

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

注意:发生这种情况时,[self.refreshControl beginRefreshing]; 中有0项(并且始终是)。

例如,如果我去:

UITableView

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

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

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

1 个答案:

答案 0 :(得分:2)

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

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

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

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

一旦刷新完成并且您想要隐藏控件,就可以将其重新设置为0。

Documentation link here