關(guān)于延時(shí)執(zhí)行,有人稱為延遲執(zhí)行罚斗,有人稱為延時(shí)加載徙鱼,可是延時(shí)加載有人又理解成懶加載,好混亂针姿,網(wǎng)上一大堆延時(shí)執(zhí)行方法的代碼袱吆,我就不重復(fù)了。
我這里距淫,只說一個(gè)绞绒!沒錯(cuò),就是一個(gè)榕暇,這個(gè)延時(shí)執(zhí)行解決了我相當(dāng)多UIScrollView蓬衡、UITableView、UICollectionView接收回調(diào)時(shí)造成的循環(huán)問題彤枢、迸發(fā)問題狰晚,下面,上代碼:
//延時(shí)一秒執(zhí)行缴啡,不阻塞主線程壁晒;self.tempArray//這個(gè)Object我這里演示才隨便這么一寫,你可以用你自己的业栅。
[self performSelector:@selector(doLater:) withObject:self.tempArray afterDelay:1.f];
重頭戲來了讨衣!
取消方法:
[NSObject cancelPreviousPerformRequestsWithTarget:self selector:@selector(doLater:) object:self.tempArray];
實(shí)戰(zhàn)試過换棚,傳同一樣類型的NSObject就可以取消。不過關(guān)于這個(gè)NSObject到底應(yīng)該如果傳反镇,我還沒有認(rèn)真摸索固蚤,我暫時(shí)以使用為目的;
這可以解決
1歹茶、用戶同時(shí)點(diǎn)擊2個(gè)cell的問題夕玩;
2、UIScrollView被迅速拖動(dòng)時(shí)惊豺,scrollViewDidScroll:回調(diào)方法里的scrollView.contentOffSet問題燎孟;
3、tableView尸昧、collectionView的willDisplayCell返回太頻繁問題揩页;
4、還有很多迸發(fā)問題都可以解決烹俗,就看你如何舉一反三爆侣;
這么簡(jiǎn)單的代碼我就不寫demo了,不過大家有空可以去我GitHub看看其他簡(jiǎn)單實(shí)用的框架:https://github.com/brainHaert