2013-03-12 116 views
1

我在UITableviewController中使用UIRefreshControl。表格首次加載來自互聯網的數據時,會自動顯示在頂部。見下圖。 enter image description hereUIRefreshControl粘貼在表頂部

這是我怎麼設置我的刷新控制

[self.refreshControl addTarget:self action:@selector(doRefresh:) forControlEvents:UIControlEventValueChanged]; 
- (void)doRefresh:(CKRefreshControl *)sender { 
    NSLog(@"Refreshing Parent"); 
    // bring Data Here 
} 

此之前拉來刷新一切發生。第一次填充簡單表格數據時,將顯示刷新控件,而不是隱藏在導航欄下方。 誰能告訴我爲什麼會發生這種情況?

+0

請編輯您的問題以包含您的代碼來創建和使用'UIRefreshControl'。 – 2013-03-12 12:21:05

+0

UITableViewController是用xib文件製作的,所以我只需在ValueChnaged方法上爲UIRefreshControl設置一個操作方法。我也啓用了在XIb刷新。 – 2013-03-12 12:23:39

+0

當您調用方法時發佈一些代碼 – Rushabh 2013-03-12 12:25:55

回答

0

嘗試分配一個新的UIRefreshControl對象並將self.refreshControl設置爲它。類似的東西:

UIRefreshControl *refreshControl = [[UIRefreshControl alloc] init]; 
[refreshControl setAttributedTitle:[[NSAttributedString alloc] initWithString:@"Refreshing.."]]; 
[refreshControl addTarget:self action:@selector(doSomething:) forControlEvents:UIControlEventValueChanged]; 
self.refreshControl = refreshControl; 

希望它有幫助。

編輯:你也應該在調用選擇器的末尾使用[self.refreshControl endRefreshing]。

+0

爲什麼?當我已經從UITableviewController refreshControl? – 2013-03-12 12:34:52

+1

@AididHussain,因爲初始化控制器時未分配來自UITableViewController的refreshControl。您必須分配並初始化新的UIRefreshControl並將其分配給UITableViewController屬性。編輯:你是對的,但你可以直接分配它,而不需要創建一個對象 - > self.refreshControl = [[UIRefreshControl alloc] init] – 2013-03-12 12:49:21