Из вашего собственного примера для Mac OS X:
CGContextRef myBitmapContext = MyCreateBitmapContext(800,600);
[rootLayer renderInContext:myBitmapContext];
CGImageRef myImage = CGBitmapContextCreateImage(myBitmapContext);
rootLayer.contents = (id) myImage;
rootLayer.sublayers = nil;
CGImageRelease(myImage);
IOS:
UIGraphicsBeginImageContextWithOptions(rootLayer.bounds.size, NO, 0.0);
[rootLayer renderInContext: UIGraphicsGetCurrentContext()];
UIImage *layerImage = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
rootLayer.contents = (id) layerImage.CGImage;
rootLayer.sublayers = nil;
Также обратите внимание на предостережение в документах:
Реализация Mac OS X v10.5
этот метод не поддерживает
вся композиция Core Animation
модель. QCCompositionLayer,
Слои CAOpenGLLayer и QTMovieLayer
не оказываются. Кроме того, слои
которые используют 3D-преобразования не являются
рендеринга, а также слои, которые определяют
backgroundFilters, фильтры,
compositingFilter, или значения маски.