我目前有一个UIImage
对象,使用initWithFrame
进行初始化,然后我在-(void)drawRect:(CGRect)rect{}
中使用`CGContext进行了一些2D绘图。非常基本的。我想知道的是,我怎样才能通过例如按钮或任何事件(不仅仅是初始化)?
我尝试将drawRect
内的代码复制到名为redraw
的新方法,但这会导致明显错误:
CGContextMoveToPoint:无效的上下文0x0
我只想知道如何在创建UIView时绘制CGContext。 不是例如如何收听UIButton事件
谢谢。
答案 0 :(得分:2)
您只能在UIView的drawRect:
方法内部绘制或通过创建自己的图像上下文。您无法通过drawRect:
以外的任何方式绘制到屏幕或为CALayer实现绘图。您需要相应地在视图上设置变量,然后调用setNeedsDisplay
重绘它。例如,在视图中添加一个属性@property(retain) UIImage *image;
,在其上设置新图片,然后调用setNeedsDisplay
(甚至更好,实现setImage:
方法并在此处调用[self setNeedsDisplay];
)。