小编Don*_*all的帖子

如何检测UIScrollView何时完成滚动在Swift中

从各方面来看,Ashley Smart提出的Obj-C中的这个问题是一个很好的解决方案(如何检测UIScrollView何时完成滚动).

-(void)scrollViewDidScroll:(UIScrollView *)sender 
{   
[NSObject cancelPreviousPerformRequestsWithTarget:self];
    //ensure that the end of scroll is fired.
    [self performSelector:@selector(scrollViewDidEndScrollingAnimation:) withObject:nil afterDelay:0.3]; 

...
}

-(void)scrollViewDidEndScrollingAnimation:(UIScrollView *)scrollView
{
    [NSObject cancelPreviousPerformRequestsWithTarget:self];
...
}
Run Code Online (Sandbox Code Playgroud)

但是,我需要一个解决方案,在Swift中.

似乎由Matt(dispatch_after - GCD in swift?)贡献的优秀延迟函数可能会有所帮助.

func delay(delay:Double, closure:()->()) {
    dispatch_after(
        dispatch_time(
            DISPATCH_TIME_NOW,
            Int64(delay * Double(NSEC_PER_SEC))
        ),
        dispatch_get_main_queue(), closure)
}
Run Code Online (Sandbox Code Playgroud)

并实施为......

delay(0.4) {
    // do stuff
}
Run Code Online (Sandbox Code Playgroud)

但我还是没把它放在一起.有帮助吗?

uiscrollview ios swift

10
推荐指数
3
解决办法
2万
查看次数

标签 统计

ios ×1

swift ×1

uiscrollview ×1