繁体   English   中英

如何使用其他方法调用iPhone进行绘制?

[英]How can I call the iPhone to draw using other method?

我有一个名为“drawingViewController”的类的视图,我有drawRect方法:

- (void)drawRect:(CGRect)rect {

    CGContextRef context = UIGraphicsGetCurrentContext();
    CGContextSetLineWidth(context, 2.0); 
    CGContextSetStrokeColorWithColor(context, [UIColor redColor].CGColor); 
    CGContextMoveToPoint(context, 0.0f, 0.0f);
    CGContextAddLineToPoint(context, 100.0f, 100.0f); 
    CGContextStrokePath(context);


}

但是我想定义一些其他的绘图方法,但是它没有用,除了调用drawRect方法之外我怎么能这样做呢? 提前。

你为什么想要另一种方法? 当客户区需要绘制或重绘时,这是框架调用的那个。

为了清楚drawRect: ,你永远不会打电话给drawRect:你自己。 你调用setNeedsDisplay:setNeedsDisplayInRect: .

drawRect:将由框架调用以绘制视图。 因此,如果要更新视图,则需要通过调用setNeedsDisplay:或setNeedsDisplayInRect来指示需要更新视图的框架:

如上所述,您应该只调用setNeedsDisplay:并让系统在适当的时候调用drawRect:。

如果您需要在调用drawRect:之外的时间绘制(例如在单独的线程中),则根据需要维护您绘制的屏幕外CGContext,然后将内容复制到UIGraphicsGetCurrentContext drawRect:context。

将一个上下文复制到另一个上下文的方法是使用CGDataProvider设置CGImage,该CGData引用CGBitmapContext拥有的相同数据。 在屏幕外的CGBitmapContext中绘制图形,然后使用CGContextDrawImage绘制到其他上下文中。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM