拉动刷新默认刷新级别更改
Pull to refresh default refresh level change
我正在使用 UIRefreshControl
。我想更改其在下拉 tableview 时的刷新操作。当tableview轻微下拉时需要刷新,因为我的tableview高度太小,下拉不够调用refresh方法
如何更改?
我简单地添加了 UIRefreshControl
如下:
self.refreshControl = [[UIRefreshControl alloc]init];
_refreshControl.tintColor = [UIColor redColor];
[self.tweetTable addSubview:self.refreshControl];
[self.refreshControl addTarget:self action:@selector(refreshTable) forControlEvents:UIControlEventValueChanged];
1) 在.h
中实现委托<UITableViewDelegate, UIScrollViewDelegate>
2) 将你的 table 的 .delegate 设置为 self
3) 检查scrollViewDidScroll
方法(tableView会调用它)
4) 观察 tableView.contentOffset.y
值,然后,当它超过您想要的阈值时....
5) 使用 setContentOffset:
手动调整 tableView 以激活刷新,而无需用户尝试将其拉那么远。
因为我不认为你可以改变你必须移动多少距离才能启动刷新的行为,所以我只会在用户滚动足够多时手动触发它,比如:
func scrollViewDidScroll(_ scrollView: UIScrollView) {
guard !refreshControl.isRefreshing else {
return//do nothing if we are already refreshing
}
//set your threshold to whatever feels ok (I used -30 here)
if scrollView.contentOffset.y < -30 {
refreshTable()
refreshControl.beginRefreshing()
}
}
您可能还需要在刷新处于活动状态时适当地偏移 table 视图,以便 UIActivityIndicator
位于您的单元格上方,然后在完成刷新后再次调整它。请注意,一旦 API
调用完成或无论您在那里做什么,您都必须在 refreshTable()
方法中调用 refreshControl.endRefreshing()
...
我正在使用 UIRefreshControl
。我想更改其在下拉 tableview 时的刷新操作。当tableview轻微下拉时需要刷新,因为我的tableview高度太小,下拉不够调用refresh方法
如何更改?
我简单地添加了 UIRefreshControl
如下:
self.refreshControl = [[UIRefreshControl alloc]init];
_refreshControl.tintColor = [UIColor redColor];
[self.tweetTable addSubview:self.refreshControl];
[self.refreshControl addTarget:self action:@selector(refreshTable) forControlEvents:UIControlEventValueChanged];
1) 在.h
中实现委托<UITableViewDelegate, UIScrollViewDelegate>
2) 将你的 table 的 .delegate 设置为 self
3) 检查scrollViewDidScroll
方法(tableView会调用它)
4) 观察 tableView.contentOffset.y
值,然后,当它超过您想要的阈值时....
5) 使用 setContentOffset:
手动调整 tableView 以激活刷新,而无需用户尝试将其拉那么远。
因为我不认为你可以改变你必须移动多少距离才能启动刷新的行为,所以我只会在用户滚动足够多时手动触发它,比如:
func scrollViewDidScroll(_ scrollView: UIScrollView) {
guard !refreshControl.isRefreshing else {
return//do nothing if we are already refreshing
}
//set your threshold to whatever feels ok (I used -30 here)
if scrollView.contentOffset.y < -30 {
refreshTable()
refreshControl.beginRefreshing()
}
}
您可能还需要在刷新处于活动状态时适当地偏移 table 视图,以便 UIActivityIndicator
位于您的单元格上方,然后在完成刷新后再次调整它。请注意,一旦 API
调用完成或无论您在那里做什么,您都必须在 refreshTable()
方法中调用 refreshControl.endRefreshing()
...