UIViewに複雑なアニメーションをさせたい時など、普通にUIViewのままいじるとパフォーマンスが悪くなるため、UIImage化していじることが多い。
http://markpospesel.com/2012/05/07/mpfoldtransition/
このフレームワークとかでも、この手法を使っている。
その変換方法。
- (UIImage *)imageFromView:(UIView *)view
{
// 必要なUIImageサイズ分のコンテキスト確保
UIGraphicsBeginImageContextWithOptions(view.frame.size, YES, 0);
CGContextRef context = UIGraphicsGetCurrentContext();
// 画像化する部分の位置を調整
CGContextTranslateCTM(context, -view.frame.origin.x, -view.frame.origin.y);
// 画像出力
[view.layer renderInContext:context];
// uiimage化
UIImage *renderedImage = UIGraphicsGetImageFromCurrentImageContext();
// コンテキスト破棄
UIGraphicsEndImageContext();
return renderedImage;
}