2013-03-12 89 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

相关问题