我目前正在使用:
CGRect rect = [self.view bounds];
UIGraphicsBeginImageContextWithOptions(rect.size,YES,0.0f);
CGContextRef context = UIGraphicsGetCurrentContext();
[self.view.layer renderInContext:context];
UIImage *capturedImage = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
选择UITabBarItem
后,将检索当前视图的屏幕截图。问题是,在切换到下一个view
之前,这将始终捕获用户处于活动状态current view
的{{1}}。
为了更好地理解这一点。我有一个view
来管理我的应用导航。 UITabBarController
中的漫步是一张表格,我希望始终捕捉用户在导航中选择View controller
Share
的图片。所以我将此链接到一个方法,该方法检查是否已单击UITabBarItem
并创建当前视图的图像,如上所示。
我的包版广告是Share
我在启动how can I capture an image of that first view(walk in view) every time no matter what view the user is currently on?
建议想法?
答案 0 :(得分:3)
这会对你有帮助吗?
CGRect rect = [yourTabController.viewControllers[walkInViewIndex].view bounds];
UIGraphicsBeginImageContextWithOptions(rect.size,YES,0.0f);
CGContextRef context = UIGraphicsGetCurrentContext();
[yourTabController.viewControllers[walkInViewIndex].view.layer renderInContext:context];
UIImage *capturedImage = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
答案 1 :(得分:0)
[self.view.layer renderInContext:context];
这显式获取当前视图的快照(self.view)。您想要做的或多或少是相同的过程,但通过指定您的步入视图:
[self.walkingController.view.layer renderInContext:context];