究竟应该在CALayer的display / drawRect方法中发生什么?

时间:2011-01-23 17:22:18

标签: iphone macos ios drawing calayer

如果这些方法中的任何一种方法适合于:

  • 更改CATextLayer的文本
  • 将其他图像加载到CAImageLayer
  • 告诉子图层自行更新

1 个答案:

答案 0 :(得分:6)

老兄我可能会喝醉...但CAlayers

中没有drawRect方法

我认为你可以使用drawInContext:来实际(gulp)吸引到CALayers,但自二战以来没有人能够做到这一点。

关于显示,您无需调用它,它基本上会使用.contents更新您设置的内容。

我只是使用.contents这样的东西......

[self.view setLayer:rearLayer];
[self.view setWantsLayer:YES];
rearLayer.frame = CGRectMake(gameBlah,gameBlah, 1024,768);
// note that we are dealing there with the mysteries of rearLayer positioning;
// it is measured by the SUPER layer of the layer in question!
// (indeed much as frame for the view is, if you think about it ..)
rearLayer.contents = (id)loadMacStylePng(@"spaceShip");

说一个人有勇气写自己的drawInContext: ......

在这种情况下,当你致电displayAsNeeded时,它会被调用(或抽象出来......或重新计算,或其他东西)。 (我永远不需要打电话给displayAsNeeded:,这是肯定的。)