2012-12-21 18 views
4

我想将selected row设置为UITableViewrefresh control。我这样做是因为我在UITableView的顶部有一个refresh control,当我加载数据时(并且它们实际上并没有将它拉下来),我希望activity indicator view可见(这是refresh control)。UITableView将选定的行设置为刷新控制

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

[self.refreshControl beginRefreshing]; 

这个伟大的工程,但唯一的问题是,是,他们无法看到它,除非上拉,因为它是在第1行(索引0)的默认值,所以它是隐藏的。

注意:当这种情况发生时,UITableView有0项(总是)。

例如,如果我去:

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

这将设置所选项目到第一排的位置,但我想让它显示的刷新控制,所以我想可能是这样做的:

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

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

回答

2

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

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

或者只是表明它没有任何动画或实现自己的动画:

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

然后,您可以将其设置回0一旦你耳目一新的是完整的,你要隐藏的控制。

Documentation link here

相关问题