Как мне использовать тип drawrect вне drawrect?

У меня есть класс Icon, основанный на UIView. Там я хочу иметь код, похожий на этот:

UIView *finalView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, frame.size.width, frame.size.height)];
finalView.backgroundColor = [UIColor redColor];

UIGraphicsBeginImageContext(finalView.bounds.size);
[finalView.layer renderInContext:UIGraphicsGetCurrentContext()];
UIImage *screenshot = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();

Проблема в том, что я не хочу помещать его в drawRect, потому что он вызывается, когда мое приложение создает каждый значок в другом представлении. Как я могу поместить такой код где-нибудь еще в моем классе Icon? Я попытался разместить его в одном месте, и это дало мне:

CGContextSaveGState: invalid context 0x0
CGContextSetAlpha: invalid context 0x0
CGContextSaveGState: invalid context 0x0
CGContextSetFillColorWithColor: invalid context 0x0
CGContextAddRect: invalid context 0x0
CGContextDrawPath: invalid context 0x0
CGContextRestoreGState: invalid context 0x0
CGContextRestoreGState: invalid context 0x0
7
задан Pål Brattberg 18 May 2011 в 19:27
поделиться