最近写的程式架构:
1.画面上有其他 ui 按键,比如左右键,以浏览于不同资料间
2.另外再摆一个 UICollectionView,用来展示资料
因此,每按一下左右键,collection view 就要更新一下资料
它内容有数十笔,夸张的说它要更新两秒好了
当 user 快速点击左右键时,这个设计就难以忍受
因为点击左右键的速度大约可以一秒三下
我们另外有摆一个 label,用来指示正在浏览什么资料
如果不更新 collection,情况会很完美,label 会更新得很快
假设我要把 collection 的更新搬到另一个 thread 去做
这会面临'所有 ui 更新都应该在 main thread 做'的经典问题;否决
另一个想法是,左右键更新 label 要快
而 collection 更新慢没有关系;最后再追上而同步即可
但实作上还是有问题
因为当 collection 开始更新,它就是会锁住 ui 两秒
这两秒内如果按 ui, 是不会取得控制权的
(若能取得,我就有解法了;我可以马上更新内部文件
假设目前 cellForItemAtIndexPath 函式回应到第十个元件好了
从第11个起,我可以回它新文件的资料
画面是会半新半旧没错,但不会卡卡
我可以马上下个 reload,下一轮更新时再把文件整个刷新)
因此问题或许是在 collection 更新时,我有没有法子从 ui 取得控制权?
谢谢