0

第一个触发器没问题,但在那之后,如果我尝试将其拉下,它总是显示它仍在加载。

这是我的 UITableViewController 上的简单代码示例:

- (void)viewDidLoad
{
    [super viewDidLoad];

    __weak StoresViewController * bSelf = self;
    [self.tableView addPullToRefreshWithActionHandler:^{
        [bSelf callStoresService];
    }];
    [self.tableView triggerPullToRefresh];
}

- (void)callStoresService {
    [self.tableView.pullToRefreshView stopAnimating];
}

添加一个断点,[self.tableView.pullToRefreshView stopAnimating];我可以看到它再也不会被调用......

我有一个旧项目,其代码几乎相同,并且可以正常工作……我在这里缺少什么吗?

4

1 回答 1

0

由于我只为 iOS 6 开发,我决定使用原生刷新:

在我的 viewDidLoad 上:

// managing pullToRefresh
UIRefreshControl *refresh = [[UIRefreshControl alloc] init];
refresh.attributedTitle = [[NSAttributedString alloc] initWithString:@"Pull down to refresh"];
[refresh addTarget:self action:@selector(refreshView:) forControlEvents:UIControlEventValueChanged];
self.refreshControl = refresh;
[self refreshView:refresh];
[self.refreshControl beginRefreshing];

然后创建一个 refreshView 方法:

-(void)refreshView:(UIRefreshControl *)refresh {
    refresh.attributedTitle = [[NSAttributedString alloc] initWithString:@"Refreshing..."];
    NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
    [formatter setDateFormat:@"dd/MM HH:mm:ss"];

    // do what you need

    NSString *lastUpdated = [NSString stringWithFormat:@"Last update: %@", [formatter stringFromDate:[NSDate date]]];
    refresh.attributedTitle = [[NSAttributedString alloc] initWithString:lastUpdated];
}

[refresh endRefreshing];完成后别忘了打电话

于 2013-03-05T21:15:59.753 回答