iPhone需要为子视图获取CGContextRef上下文引用

iPhone需要为子视图获取CGContextRef上下文引用,iphone,cocoa-touch,Iphone,Cocoa Touch,我正在使用IBoutlet获取一个子视图的引用,该子视图是我在interface builder中添加到主视图中的,但由于这无法让我访问drawRect:我将无法获取要绘制的上下文。是否仍然可以获取图形上下文以便在子视图上绘制?我该怎么办 你不能那样画;您必须根据drawRect调用进行绘制,而不是在某些框架允许的任何时候 正确的方法是:在Xcode中创建UIView子类。切换到Interface Builder,选择子视图,并将其“类标识”(在“工具>标识检查器”下)更改为新子类的名称 然后在

我正在使用IBoutlet获取一个子视图的引用,该子视图是我在interface builder中添加到主视图中的,但由于这无法让我访问drawRect:我将无法获取要绘制的上下文。是否仍然可以获取图形上下文以便在子视图上绘制?我该怎么办

你不能那样画;您必须根据
drawRect
调用进行绘制,而不是在某些框架允许的任何时候

正确的方法是:在Xcode中创建UIView子类。切换到Interface Builder,选择子视图,并将其“类标识”(在“工具>标识检查器”下)更改为新子类的名称


然后在您的子类中,您可以实现
drawRect

您不能这样绘制;您必须根据
drawRect
调用进行绘制,而不是在某些框架允许的任何时候

正确的方法是:在Xcode中创建UIView子类。切换到Interface Builder,选择子视图,并将其“类标识”(在“工具>标识检查器”下)更改为新子类的名称


然后在子类中,可以实现
drawRect

您不应该在另一个视图中绘制,甚至不应该在子视图中绘制。子视图应该自己绘制,并且可以访问自己的图形上下文。您无法访问其他视图的上下文;它们由框架处理,并在调用相应视图的
-drawRect:
之前进行设置。

您不应该在其他视图中绘制,甚至不应该在子视图中绘制。子视图应该自己绘制,并且可以访问自己的图形上下文。您无法访问其他视图的上下文;它们由框架处理,并在调用相应视图的
-drawRect:
之前进行设置。

从技术上讲,可以通过view.layer.delegate路由使一个对象成为另一个对象的绘图代理。可以构造一个要实现的委托

  • (void)drawLayer:(CALayer*)层inContext:(CGContextRef)ctx

这使您能够在必要时重用图形说明。但是对于另一个程序员来说,阅读和理解它可能是乏味的。除非消除代码重复,否则大多数人都会避免这种情况。

从技术上讲,可以通过view.layer.delegate路由使一个对象成为另一个对象的图形委托。可以构造一个要实现的委托

  • (void)drawLayer:(CALayer*)层inContext:(CGContextRef)ctx

这使您能够在必要时重用图形说明。但是对于另一个程序员来说,阅读和理解它可能是乏味的。除非消除代码重复,否则大多数人都会避免它。

视图没有上下文。调用
-drawRect:
时会为它们创建上下文,但在
-drawRect:
的范围之外不存在上下文。视图没有上下文。当调用
-drawRect:
时,会为它们创建一个上下文,但在
-drawRect:
的范围之外不存在上下文。