您好,欢迎来到二三四教育网。
搜索
您的当前位置:首页ios bug记录

ios bug记录

来源:二三四教育网

1.副线程刷新UI问题

一个view已经removeFromSuperView了,可是界面上还是有它,甚至dealloc方法都有已经调用了。然后过了1分钟左右,才自己消失

一开始以为是UI线程被阻塞,导致界面没有刷新,后来发现alertView弹框是正常的,点击也有效果。

把removeFromSuperView放到主线程果然好了。以前以为在副线程操纵UI,只会导致奔溃或者没有问题,没想到会有延迟更新。


2017.5.25 更新

评论里朋友提了个好问题,关于为什么副线程修改没有及时响应。

原因就是报错提示里说的那样,CATransaction没有提交。负责绘制的Core Animation会把CATransaction提交的layer更新提交给GPU去显示。主线程有个默认开启的CATransaction,会自动追踪layer的改变,所以主线程会迅速反应。我做了测试:

dispatch_async(dispatch_get_global_queue(0, 0), ^{

[CATransaction begin];
[_testView removeFromSuperview];
[CATransaction commit];

});
如果主动提交,则会立马更新界面。

Copyright © 2019- how234.cn 版权所有 赣ICP备2023008801号-2

违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务