受滚动和缩放等操作影响主线程无法阻塞
来源:互联网 发布:詹姆斯社交软件头像 编辑:程序博客网 时间:2024/06/07 05:01
问题描述:
最近开做苹果界面开发,需求是做个类似windows上的模态对话框。并且只有当界面关闭后,才能执行主线程代码并返回对话框操作结果值。
根据需求在静态方法中使用了CFRunLoopRun来阻塞主线程,显示VC视图,在VC类中声明虚函数控制试图关闭并调用CFRunLoopStop唤醒主线程执行。
原本代码能够正常运行,可是当VC中含有滚动视图时,问题就会出现。视图被用户手指滑动,那么我们阻塞的主线程就被唤醒啦。
解决方法:
后来我们只能在VC类中添加成员变量控制,如果是我们主动关闭那么将变量制为真,否则为假。显示VC的静态方法也需要修改一下,在CFRunLoopRun外层加个循环判断,如果变量为假则一直阻塞主线程,这样问题就解决啦。
希望我写的方法能对各位朋友提供帮助。
0 0
- 受滚动和缩放等操作影响主线程无法阻塞
- runloop 阻塞主线程
- 主线程阻塞、消息队列机制和图片下载
- 下拉列表和滚动条等无法显示的问题
- furtureTask 避免主线程长时间阻塞
- Qt延时一段时间不阻塞主线程
- 解决MBProgressHUD阻塞主线程的方法
- 解决UI主线程阻塞原因
- Qt延时一段时间不阻塞主线程
- scrollView的滚动和缩放
- 解决iOS程序UI主线程和定时器相互阻塞的问题
- 解决iOS程序UI主线程和定时器相互阻塞的问题
- 解决iOS程序UI主线程和定时器相互阻塞的问题
- 解决iOS程序UI主线程和定时器相互阻塞的问题
- 解决iOS程序UI主线程和定时器相互阻塞的问题
- why 主线程操作UI
- OpenCV图像操作,缩放,旋转等
- 图片缩放,拖拽等操作
- [leetcode 54] Spiral Matrix
- Linux下的IPv6地址、路由以及隧道配置
- FileWriter不覆盖
- 导入Android项目异常
- 链表的一个简单应用---目录下的文件并排序
- 受滚动和缩放等操作影响主线程无法阻塞
- hadoop实实的体验--hello -wordcount
- Android很有用的代码片段
- OC手动内存管理-临时对象与事件循环中的自动释放池
- 区域锁(Scoped locking)
- web service 异常
- 【代码篇】JBPM4.4开发流程节点(动态代理实现流程管理业务)
- OC之NSPredicate(谓词)学习
- OC手动内存管理的规则总结