Before iOS7 I use UIGetScreenImage()
function to take the screenshot easily, but in iOS7, it becomes deprecated, now are there any good methods to archive this?Thank you!
Addition: I need take screenshot for the entire screen at any view
Before iOS7 I use UIGetScreenImage()
function to take the screenshot easily, but in iOS7, it becomes deprecated, now are there any good methods to archive this?Thank you!
Addition: I need take screenshot for the entire screen at any view
This code can help you in getting a screenshot of the self.view which is whole of the screen of the iPhone no matter which app is in front.If you have used any layers in your view then the layers will not be included in the screenshot and for that you have to use self.view.layer.
I came across the same problem, but have no ideas how to solve it.
I tried IOSurface - IOS Private API - Capture screenshot in background , which works well in some apps but returns a black screen in games.
Then I tried this app https://github.com/k06a/UIView-FastScreenshot/blob/master/UIView%2BFastScreenshot.m , which works well using private apis, but I can't compile it using theos, always telling me "Undefined symbols for architecture armv7: CARenderServerRenderDisplay". Edit: I figured out how to compile it using theos, but returns am empty image.
Also, https://github.com/coolstar/RecordMyScreen works well in iOS7, but it's not open source now, so I can't find out how it capture the whole screen.
Edit: RecordMyScreen's code works on iOS7 as a springboard tweak, you can refer to this file https://github.com/coolstar/RecordMyScreen/blob/master/RecordMyScreen/CSScreenRecorder.m this method "- (void)_captureShot:(CMTime)frameTime;"
The UIView class has an method called: resizableSnapshotViewFromRect:afterScreenUpdates:withCapInsets .
But i have never worked with this method so i cannot tell you more about it.
And this post: Capture UIView as UIImage shows how you get the returned UIView into an image.
hope it is usefull.
Alternative way to replace UIGetScreenImage()
The above code is one line of code to capture the screen, but Apple does not open the above API UIGetScreenImage() for the public app. i.e. fail to upload to Apple for approval. So the alternative way to capture screen and save it are listed as below.
some of link help you how-to-legally-replace-uigetscreenimage