Как насчет метода renderInContext CALayer ?
-(void)methodName:(CGContextRef)ctx {
UIView *someView = [[UIView alloc] init];
[someView.layer renderInContext:ctx];
}
EDIT: Как отмечено в комментарии, из-за разницы в происхождении в двух координатахВ системах, участвующих в процессе, слой будет отображаться в обратном порядке.Чтобы компенсировать это, вам просто нужно перевернуть контекст по вертикали.Технически это делается с помощью преобразования масштаба и перевода, которое можно объединить в одно матричное преобразование:
-(void)methodName:(CGContextRef)ctx {
UIView *someView = [[UIView alloc] init];
CGAffineTransform verticalFlip = CGAffineTransformMake(1, 0, 0, -1, 0, someView.frame.size.height);
CGContextConcatCTM(ctx, verticalFlip);
[someView.layer renderInContext:ctx];
}