iosrunloop机制 如何解决静态页面在ios上的滑动卡顿?
如何解决静态页面在ios上的滑动卡顿?
这个问题的本质可以追溯到IOS runloop。滑动时,runloop切换模式。默认情况下,nstimer和Scrollview的滑动以两种模式执行,这可以通过两种方式解决:
runloop中的source0和source1分别处理什么时间?
source1 Apple创建一个系统来接受系统发送的事件。当手机上发生触摸、震动或锁定时,系统将向应用程序进程(进程通信)发送事件。这就是为什么它被称为基于端口的source1交付。端口是进程端口,它可以在进程中激活线程的runloop,比如在屏幕上点击应用程序的按钮或屏幕,runloop就会被唤醒来处理触摸事件。你可以做个实验。向主线程的runloop中添加一个cfrunloop obserref,并使用switch输出六个runloop状态。此时,每次点击屏幕,它都会输出六个runloop状态,然后进入睡眠状态。
source0:执行performselectors方法。如果在主线程performselectors中对子线程执行任务,则会在代码中将事件发送到子线程的runloop。此时,如果子线程打开runloop,任务将被执行。注意,performselector方法只能在子线程打开runloop时执行。如果不在子线程中打开runloop,操作将失败并崩溃。
以上是我个人的理解。如果你有任何问题,请指出!
iosrunloop机制 runloop面试 ios使用runloop技巧
版权声明:本文内容由互联网用户自发贡献,本站不承担相关法律责任.如有侵权/违法内容,本站将立刻删除。