0

我正在研究一个开源的 pull-to-refresh 控件,它在 UIViewController 类别上调整生命周期方法,如下所示:

- (void)INBPullToRefreshView_viewWillAppear:(BOOL)animated
{
    [self setClearNavigationBar:YES];
    [self INBPullToRefreshView_viewWillAppear:animated];
    UITableView *tableView = self.pullToRefresh.tableView;
    tableView.contentOffset = tableView.contentOffset;
    self.pullToRefresh.showPullToRefresh = YES;
}

我知道当viewWillAppear被调用时它映射到上述方法,并且调用[self INBPullToRefreshView_viewWillAppear:animated];将映射到原始的viewWillAppear.

但是,以下内容有什么作用?:

tableView.contentOffset = tableView.contentOffset;

这是控件的github 源代码

4

2 回答 2

3

我怀疑作者试图使用 的副作用setContentOffset:,可能会强制重新计算。但是作者似乎对这个项目很活跃,所以为什么不在 github 问题中询问 intmain 呢?

当然,这种方法混合非常危险和脆弱的标准警告适用。

于 2015-03-17T21:44:10.360 回答
2

我相信你在问一些与调酒本身无关的东西?

设置 contentOffset 属性将导致 scrollViewDidScroll: 消息发送到您的对象的委托。可能有一种更清洁的方法来实现这一点(或者至少它应该有评论)

于 2015-03-17T21:45:57.697 回答