我正在尝试学习如何使用和实施CALayer
在 Mac Objective-C 应用程序中,但我似乎无法做最基本的事情 - 添加一个新图层并设置其背景颜色/框架大小。谁能看到我的代码有什么问题吗?
CALayer *layer = [CALayer layer];
[layer setFrame:CGRectMake(0, 0, 100, 100)];
[layer setBackgroundColor:CGColorCreateGenericRGB(1.0, 0.0, 0.0, 1.0)];
[self.layer addSublayer:layer];
[layer display];
我把这个放在- (void)drawRect:(NSRect)rect
我定制的方法NSView
子类,但是当我运行应用程序时,它只显示一个空白视图,没有背景颜色或我创建的图层的证据。
首先,你不想在drawRect:
视图的方法,系统会自动调用该方法,您最终可能会得到比实际想要的更多的层。initWithFrame:
or initWithCoder:
(对于 nib 文件中的视图)是初始化图层层次结构的更好位置。
此外,NSView
默认情况下没有根层(这与UIView
在 iOS 上)。基本上有两种NSView
使用层的s:layer-backed视图和图层-hosting意见。如果您想直接与图层交互(添加子图层等),您需要创建一个图层 -hosting view.
为此,请创建一个CALayer
并调用视图的setLayer:
方法。之后,致电setWantsLayer:
。如果您打电话的话,订单很重要setWantsLayer:
首先,您实际上创建了一个图层支持的视图。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)