Одним из вариантов будет добавление CALayer к слою представления вместо добавления UIView к представлению. CALayer имеет свойство delegate
, которому вы можете назначить любой объект. CALayer звонит:
- (void)drawLayer:(CALayer *)layer inContext:(CGContextRef)ctx
на delegate
, который вы можете использовать, чтобы сделать что-то вроде:
- (void)drawLayer:(CALayer *)layer inContext:(CGContextRef)ctx {
if (layer == myLayer) {
UIGraphicsPushContext(ctx);
[string drawInRect:rect withFont:font lineBreakMode:mode];
UIGraphicsPopContext();
}
}