iPhone Quartz - 从另一个类调用绘图方法

时间:2012-05-29 11:25:02

标签: iphone ios objective-c quartz-graphics quartz-2d

我正试图从Class A调用绘图方法,例如位于Class B的方法,该方法正在被调用,但没有绘图。

- (void)drawIt
{
    CGContextRef context = UIGraphicsGetCurrentContext();
    CGContextSetFillColorWithColor(context, [UIColor whiteColor].CGColor);

    NSString *string = [NSString stringWithString:@"TEXT"];
    [string drawAtPoint:CGPointMake(12, 51) withFont:[UIFont fontWithName:@"Helvetica" size:35.0f]];
}

为什么我可以从其他类调用此方法?

2 个答案:

答案 0 :(得分:1)

首先创建类'YourView',它是UIView的子类。写入分类代码viewDidLoad方法,该方法属于B类

- (void)viewDidLoad{
 YourView *temp = [[YourView alloc] initWithFrame:CGRectMake(0, 0, 100, 100)];
    [self.view addSubview:temp];
}

在YourView.m中实施- (void)drawRect:(CGRect)rect方法

- (void)drawRect:(CGRect)rect
{
CGContextRef context = UIGraphicsGetCurrentContext();
    CGContextSetFillColorWithColor(context, [UIColor whiteColor].CGColor);
    NSString *string = [NSString stringWithString:@"TEXT"];
    [string drawAtPoint:CGPointMake(12, 51) withFont:[UIFont fontWithName:@"Helvetica" size:35.0f]];
}

我认为这会对你有所帮助。

答案 1 :(得分:0)

如果您使用的是UIView或某个子类,则需要重载drawRect方法。所以,在drawRect中你可以在其他类中调用你的方法。此外,您也可以通过参数传递上下文。