Don*_*yck 14 delegates uiscrollview ios
我想在UIScrollview上实现"pull down to refresh"类型效果.在检测到滚动视图的"顶部"反弹时,视图应刷新一些组件.如何检测UIScrollview的"顶部反弹"?我尝试了委托"scrollViewWillBeginDragging",但没有奏效.
rde*_*mar 15
实现scrollViewDidScroll:,并检查scrollView.contentOffset.y的值 - 当你向下拉时它将是负数,并在它反弹时返回0(或接近0).根据您要满足的条件进行刷新,您可以在该值达到特定负值时设置一个标志,然后在它返回到接近0时进行刷新.这样的事情:
-(void)scrollViewDidScroll:(UIScrollView *)scrollView {
if (scrollView.contentOffset.y < -50) _metNegativePullDown = YES;
if (fabs(scrollView.contentOffset.y) < 1 && _metNegativePullDown) {
//do your refresh here
_metNegativePullDown = NO;
}
}
Run Code Online (Sandbox Code Playgroud)
作为记录,我正在使用以下类别在Swift 4上检测到两个反弹:
extension UIScrollView {
var isBouncing: Bool {
var isBouncing = false
if contentOffset.y >= (contentSize.height - bounds.size.height) {
// Bottom bounce
isBouncing = true
} else if contentOffset.y < contentInset.top {
// Top bounce
isBouncing = true
}
return isBouncing
}
}
Run Code Online (Sandbox Code Playgroud)
要考虑的事情
| 归档时间: |
|
| 查看次数: |
7165 次 |
| 最近记录: |