这是我的理解:UIView和CALayer类中都有一个“setNeedsDisplay”,UIView是包含CALayer的复合类。但UIView使用“drawRect:”,而CALayer使用“drawLayer:inContext:”。它们都使用“setNeedsDisplay”来调用它。这是某种协议吗?所以我猜在UIView的实现过程中,会创建一个CALayer,并将该层的委托设置为UIView类?这两个类之间的关系是什么?那么UIView中的“drawRect:”基本上是解析其内容并调用其层的“drawLayer:inContext:”?这是哪种设计模式?我试图理解这两个类如何工作,谢谢。