I spent several hours today (that I will never get back) attempting to force a view with a 3D transform to render properly into a UIImage as a favor for Aaron B. Long story short? Failed.
My most promising approach was this, where I attempted to read in an image pixel-by-pixel. Although it worked for the gross dimensions, the fine details were not properly read due to the z-axis rotation:
CGPoint p = [view.layer.superlayer convertPoint:refPoint toLayer:view.layer];
In the end, the lesson is this: 1. Don’t get distracted by Quartz stuff when you’re supposed to be writing a Quartz book. 2. Listen to Apple when it says, “Layers that use 3D transforms are not rendered”
On the bright side, I have marching ants working beautifully — integrated with CADisplayLink and a time interval you specify: Marching Ants