2011-07-29 37 views
5

因此,这里的关系是我的理解:有两种的UIView和CALayer的类setNeedsDisplay,UIView的是复合类,它包含的CALayer。但是UIView的使用drawRect:而CALayer的使用drawLayer:inContext:他们都使用setNeedsDisplay调用它。这是一些协议还是什么?所以我想在UIView的实现中,CALayer被创建,并且这个图层的委托被设置为UIView类?这两个类之间的关系究竟是什么?因此,在该UIView的是drawRect:基本上解析它的内容,并调用其层drawLayer:inContext:?这是什么样的设计模式?我试图围绕着这两个班的工作方式,谢谢。什么的UIView和CALayer的

回答

0

这是所有苹果的实现细节,所以我不知道肯定做。另外,不同的视图类与它们的图层会有不同的关系。

例如,UIImageViewexplicitly documented呼叫drawRect:。这可能是因为设置实际上是一个图像的情况下直接通过渲染方法会更新该层的contents财产。

这就是说,我想最基本的UIView的行为是,setNeedsDisplay只是将呼叫转发到该层。然后,当drawLayer:inContext:被称为上来看,它设置了UIGraphics方面的东西,并呼吁drawRect:

相关问题