美文网首页iOS Developer好东西小知识点
iOS 可取消的延时执行方法(最新防坑、解决回调迸发、解决点击迸

iOS 可取消的延时执行方法(最新防坑、解决回调迸发、解决点击迸

作者: Long_Scorpion | 来源:发表于2017-04-23 18:29 被阅读0次

关于延时执行,有人称为延迟执行,有人称为延时加载,可是延时加载有人又理解成懒加载,好混乱,网上一大堆延时执行方法的代码,我就不重复了。

我这里,只说一个!没错,就是一个,这个延时执行解决了我相当多UIScrollView、UITableView、UICollectionView接收回调时造成的循环问题、迸发问题,下面,上代码:

//延时一秒执行,不阻塞主线程;self.tempArray//这个Object我这里演示才随便这么一写,你可以用你自己的。

[self performSelector:@selector(doLater:) withObject:self.tempArray afterDelay:1.f];

重头戏来了!

取消方法:

[NSObject cancelPreviousPerformRequestsWithTarget:self selector:@selector(doLater:) object:self.tempArray];

实战试过,传同一样类型的NSObject就可以取消。不过关于这个NSObject到底应该如果传,我还没有认真摸索,我暂时以使用为目的;

这可以解决

1、用户同时点击2个cell的问题;

2、UIScrollView被迅速拖动时,scrollViewDidScroll:回调方法里的scrollView.contentOffSet问题;

3、tableView、collectionView的willDisplayCell返回太频繁问题;

4、还有很多迸发问题都可以解决,就看你如何举一反三;

这么简单的代码我就不写demo了,不过大家有空可以去我GitHub看看其他简单实用的框架:https://github.com/brainHaert

相关文章

网友评论

    本文标题:iOS 可取消的延时执行方法(最新防坑、解决回调迸发、解决点击迸

    本文链接:https://www.haomeiwen.com/subject/teuyzttx.html