Tre*_*vör 3 macos cocoa core-animation swift
在 Cocoa 上,为了确保视图拥有自己的层,您应该设置wantsLayer为true。
wantsLayer和的确切区别是什么wantsUpdateLayer?
据我了解wantsLayer,导致视图开始使用图层,同时wantsUpdateLayer更改视图的绘制方式(通过调用updateLayer而不是draw)。
wantsLayer设置为 true 而不设置wantsUpdateLayer为 true有何用处?如果设置为 true
还需要设置wantsLayerto吗?truewantsUpdateLayer
我应该在哪里与我的视图层交互?
您应该只与函数内的层进行交互,这样正确吗updateLayer?这是否适用于 的每个属性和方法CALayer?例如,如果我想添加一个子层,updateLayer也应该这样做吗?
编辑 此外,最新的 AppKit 发行说明指出:
面向 macOS 10.14 的应用程序应优先使用wantUpdateLayer 属性而不是wantLayer 属性。
那么这是否意味着在 macOS 10.14 上,如果您已经在使用wantUpdateLayer,则实际上不需要使用wantLayer?
wantLayer 属性告诉您的 NSView 是否将由图层支持。默认情况下,NSView 不受层支持。因此,如果您需要一个图层(例如用于动画),则需要指定它。
wantUpdateLayer 确实不同。NSView 可以通过两种(独占)方式更新其内容:
默认情况下wantUpdateLayer返回NO,因此调用drawRect:。但是如果你设置wantUpdateLayer返回YES(并且如果你的视图是layer-backed的),那么updateLayer将会被调用。
updatelayer 可以比 drawRect 快得多:如果您可以通过修改图层属性来更新视图内容
所以回答你的问题:
| 归档时间: |
|
| 查看次数: |
2399 次 |
| 最近记录: |