Cocoa touch 在CALayer中使用核心图形绘制

Cocoa touch 在CALayer中使用核心图形绘制,cocoa-touch,core-animation,core-graphics,calayer,Cocoa Touch,Core Animation,Core Graphics,Calayer,我正试图了解核心图形和核心动画。我理解如下: 使用UIView,我可以通过覆盖drawRect来绘制核心图形 我可以创建多个CALayer,设置它们的属性并添加它们 我的问题是: -如果我从头开始创建一个CALayer(不使用CALayer*myLayer=myUIView.layer),那么在该CALayer中绘制的方法是什么? -对于UIView,CALayer的drawRect等价物是什么 我希望这是有意义的。要进行自定义绘图,您有两个选项: 子类CALayer并实现-drawInCo

我正试图了解核心图形和核心动画。我理解如下:

  • 使用
    UIView
    ,我可以通过覆盖
    drawRect
    来绘制核心图形
  • 我可以创建多个
    CALayer
    ,设置它们的属性并添加它们
我的问题是: -如果我从头开始创建一个
CALayer
(不使用
CALayer*myLayer=myUIView.layer
),那么在该
CALayer
中绘制的方法是什么? -对于UIView,CALayer的
drawRect
等价物是什么


我希望这是有意义的。

要进行自定义绘图,您有两个选项:

  • 子类
    CALayer
    并实现
    -drawInContext:
  • 制作自己的类,作为层的委托来执行Quartz例程。它应该实现
    -drawLayer:inContext:

  • 您应该将自定义层作为子层添加到
    UIView
    的层中。您应该浏览一下
    CALayer
    的文档页面,了解有关如何与视图层交互的一些规则。

    我刚刚读到,通过对UIView进行子类化并实现+layerClass以返回自定义层类,您可以将自定义层设置为UIView层。您可以这样做,而不是将自定义层添加为视图层的子层(whew)。