2012-05-29 2 views
0

Я пытаюсь вызвать метод рисования от Class A, например, метод, расположенный в Class B, метод вызывается, но ни один рисунок не выполняется.iPhone Quartz - метод рисования вызовов из другого класса

- (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]]; 
} 

Почему я могу назвать этот метод другим классом?

ответ

0

Если вы используете UIView или какой-либо подкласс, вам необходимо перегрузить метод drawRect. Итак, внутри drawRect вы вызываете свой метод в другом классе. Кроме того, вы также можете передать свой контекст через параметр.

+0

Спасибо, вызовы суперкласса UITableView, и я использую drawRect, но я не хочу делать ничью на объекте init. – jkigel

1

Сначала создайте класс 'YourView', который является подклассом UIView. Написать код Allocation viewDidLoad метод, который в классе В

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

Реализовать - (void)drawRect:(CGRect)rect метод в YourView.m

- (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]]; 
} 

Я думаю, что это будет полезно для вас.

+0

Спасибо, но я не хочу делать эту ничью прямо после init ... Я также хочу, чтобы рисовать и стирать вручную – jkigel