开发者

[iOS]How to make a "snapshot" of the current view's state

开发者 https://www.devze.com 2023-01-16 06:56 出处:网络
I need to make a snapshot or a screenshot - call it as you like- of the current view a开发者_开发知识库nd then display it in the modal view.

I need to make a snapshot or a screenshot - call it as you like- of the current view a开发者_开发知识库nd then display it in the modal view.

Because if I just write this in the ModalView's View controller

MyAppViewController *viewController = [[MyAppViewController alloc] init];
self.view = viewController.view;

All the methods of the MyAppViewController are called as well, but I don't need it, I just need to "save" everything that was on the screen when the ModalView appeared and show it in the ModalView's view.

How can I do it? Thanks in advance!


I would suggest doing this:

Have a method that creates an image out of the contents of the view.

-(UIImage*) makeImage {

UIGraphicsBeginImageContext(self.view.bounds.size);

[self.view.layer renderInContext:UIGraphicsGetCurrentContext()];

UIImage *viewImage = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();

return viewImage;
}

Create a custom init method for your modal view, and also give your modalView an instance variable that can hold a UIImage something like...

- (id)initWithImage:(UIImage *)temp {
   myImage = temp;
}

Then in your modalView, perhaps in the viewDidLoad method, create a UIImageView and set the image to myImage

Hopefully this achieves what you are trying to do.


In iOS 7, you can use one of the new methods in UIView for creating snapshots, for instance:

- (UIView *)snapshotViewAfterScreenUpdates:(BOOL)afterUpdates;

which returns a UIView which you can then add as a subview.


UIView *viewSnapShop = [self snapshotViewAfterScreenUpdates:NO];
0

精彩评论

暂无评论...
验证码 换一张
取 消