我有一个原型单元的tableview。
我的viewDidLoad方法中有以下代码,
_refreshControl = [[UIRefreshControl alloc]init];
[_refreshControl addTarget:self action:@selector(refreshData) forControlEvents:UIControlEventValueChanged];
UITableViewController *tableViewController = [[UITableViewController alloc] init];
tableViewController.tableView = _tblView;
tableViewController.refreshControl = _refreshControl;
以下是我的refreshData方法....
-(void)refreshData
{
[_request getApproveStatutoryMapping];
UITableViewController *tableViewController = [[UITableViewController alloc] init];
tableViewController.tableView = _tblView;
[_tblView reloadData];
NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
[formatter setDateFormat:@"MMM d, h:mm a"];
NSString *title = [NSString stringWithFormat:@"Last update: %@", [formatter stringFromDate:[NSDate date]]];
NSDictionary *attrsDictionary = [NSDictionary dictionaryWithObject:[UIColor whiteColor]
forKey:NSForegroundColorAttributeName];
NSAttributedString *attributedTitle = [[NSAttributedString alloc] initWithString:title attributes:attrsDictionary];
tableViewController.refreshControl.attributedTitle = attributedTitle;
[tableViewController.refreshControl endRefreshing];
}
问题在于
答案 0 :(得分:1)
您将像{UIViewController
的属性一样定义UITableViewController *tableViewController
在方法refreshData
中删除行
UITableViewController *tableViewController = [[UITableViewController alloc] init];
tableViewController.tableView = _tblView;
必须在刷新数据后调用方法endRefreshing
,而不是在开始刷新数据时调用,或者在不等待更新的情况下看到预加载器不到一秒
下面
NSDictionary *attrsDictionary = [NSDictionary dictionaryWithObject:[UIColor whiteColor]
forKey:NSForegroundColorAttributeName];
您可以将刷新标题的颜色定义为白色,如果背景为白色,则永远不会看到标题
答案 1 :(得分:0)
我遇到了同样的问题,刷新的拉力只能运行一次。经过多次努力,我得到了一个解决方案,即在将数据加载到tableview之前我们需要停止刷新。
refreshControl.endRefreshing()
我希望它可能会有所帮助。