【发布时间】:2013-07-29 15:18:51
【问题描述】:
我正在使用以下代码来创建 UIRefreshControl:
- (void) viewDidLoad
{
[super viewDidLoad];
UIRefreshControl *refreshControl = [[UIRefreshControl alloc] init];
[refreshControl addTarget:self action:@selector(doLoad) forControlEvents:UIControlEventValueChanged];
self.refreshControl = refreshControl;
}
- (void) doLoad
{
dispatch_async(dispatch_get_global_queue(0, 0), ^{
// Instead of sleeping, I do a webrequest here.
[NSThread sleepForTimeInterval: 5];
dispatch_async(dispatch_get_main_queue(), ^{
[tableView reloadData];
[self.refreshControl endRefreshing];
});
});
}
效果很好。如果我导航到我的视图,拖动表格,代码运行并显示数据。
但是,我想做的是让视图一出现就处于“加载”状态(这样用户就知道正在发生某些事情)。我尝试添加以下内容:
- (void)viewDidAppear:(BOOL)animated
{
[super viewDidAppear:animated];
[self.refreshControl beginRefreshing];
}
但它似乎不起作用。当我导航到视图时,它看起来像一个常规视图(刷新控件不可见),而且当我尝试拉动刷新控件时,它从未完成加载。
显然我的做法是错误的。关于我应该如何处理的任何建议?
【问题讨论】:
-
它对我有用。我做同样的事情。只有 refreshControl 的操作具有 sender 属性。当我进入屏幕时,刷新控件不可见,但如果我将表格视图拉下一点,我可以看到旋转的刷新控件。
标签: ios uitableview uirefreshcontrol