12
A
回答
15
你可以用它来通知了AppKit,你NSView
子类-drawRect:
实例方法可以从辅助线程调用。
它是10.6+。当/如果AppKit异步渲染视图,-drawRect:
使用并发块执行,并且您的-drawRect:
将从辅助线程调用。这意味着你的子类的实现必须是线程安全的(为了兼容性,默认情况下它是禁用的)。
有关详细信息,另请参阅-[NSView setCanDrawConcurrently:]
,因为实际启用此行为所需的操作很少。此外,它不应该暗示AppKit是线程安全的,或者它的子类被设计为支持这个功能 - 它被设计用于你的重绘图。
2
该选项用于支持螺纹绘图的视图,例如NSProgressIndicator
。如果可以同时绘制DrawRect,则可以从该视图的后台线程调用drawRect。参考NSView类参考。
None of the AppKit's views support this (except for NSButton and NSProgressIndicator, but they have separate APIs for this for historical reasons).
相关问题
- 1. 如何以编程方式复制构建于界面构建器中的UIViews?
- 2. 界面构建器中的视图失真。这怎么可能?
- 3. 起源控件在界面构建器中做了什么?
- 4. 如何在界面构建器中创建可可绑定?
- 5. 在Xcode中构建时保存界面构建器的更改
- 6. [Android界面]这是什么?我可以创建它吗?
- 7. 为什么UIImageView在运行时从原始位置(界面构建器)移动?
- 8. 什么时候创建界面生成器IBOutlet对象
- 9. 如何在界面构建器中配置导航控制器?
- 10. Fabric和AppStore可以同时构建吗?
- 11. 什么是构造界面`google.maps.Icon`
- 12. 有什么方法可以在R中的一组点上绘制边界吗?
- 13. 如何在界面构建器上实现此界面?
- 14. 界面构建器:锁定选择
- 15. 使用界面构建器Xcode 4
- 16. 界面构建器中的Tab顺序?
- 17. 界面构建器放大缩小
- 18. 构建使用Qt编辑器界面
- 19. 获取@IBDesignable UIView绘制时不会崩溃界面生成器
- 20. 创建在线协作绘图:构建模块可以是什么?
- 21. 有什么可以影响gcc构建相同的代码?
- 22. 我可以从ocaml toplevel构建一个图形界面吗?
- 23. 我可以使用Spec在Seaside中构建用户界面吗?
- 24. 临时构建中崩溃问题,同时绘制
- 25. 为什么python的日志界面与打印界面不同?
- 26. 构建bacnet系统界面的最佳方式是什么?
- 27. 用Xcode构建用户界面的最佳实践是什么?
- 28. 当点击一个以编程方式创建的UIButton时,是否可以推送到可在界面构建器中编辑的控制器?
- 29. 构建在buildbot中发生了什么?可以buildmaster构建?
- 30. 什么是“界面生成器可可触摸工具”
请注意,从OS X 10.8和iOS 6.0开始,在视图层上设置新的'drawsAsynchronously'属性可以提供足够的性能,而不会使'drawRect:'线程安全的复杂化。在OS X上,您需要使用层次支持的视图来使用“异步绘制”。 –
@robmayoff不错的提示+1。你有没有机会衡量这个或者遇到一个很好的写作?我一直在编写线程安全的并发渲染器。我想这是一个很多人都想避免的区域:) – justin
我还没有玩过它。来自[WWDC 2012](https://developer.apple.com/videos/wwdc/2012/)的*优化2D图形和动画性能*视频将在31分24秒左右开始讨论它。 –