2012-12-21 51 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

相關問題