Ok, a bit late to the party. Apple officially approved the use of UIGetScreenImage().
After carefully considering the issue, Apple is now allowing applications to use the function UIGetScreenImage() to programmatically capture the current screen contents. The function prototype is as follows:CGImageRef UIGetScreenImage(void);
How to caputure a view, ideally the live input of the camera? Unfortunaly there’s no clean and clear interface for that. Only the undocumented UIGetScreenCapture() call:
But since UIGetScreenCapture() is an undocumented call (in 3.1), here are official ways to get the content of a view.