1

我曾经- (BOOL)presentPreviewAnimated:(BOOL)animated; 加载文档,然后我想从文档中截取屏幕截图。所以我尝试

UIGraphicsBeginImageContext(self.view.bounds.size);
[self.view.layer renderInContext:UIGraphicsGetCurrentContext()];
currentImage=UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();

但它只占用主视图,所以我正在寻找可以告诉我如何获取文档视图层的人。

4

1 回答 1

0

这将不起作用,因为弹出框(其中包含 UIDocumentInteractionController)未添加到您的视图控制器的视图中。

它们被添加到应用程序窗口顶部的自己的视图中。

// This is kind of hacky, do not use for production :)
// Make sure this code is executed while the popover is being shown.
UIView *uiDimmingView = [[[[UIApplication sharedApplication] keyWindow] subviews] lastObject];
UIView *uiPopoverView = [[uiDimmingView subviews] lastObject];

如果您使用uiDimmingView,您将获得包含弹出框的整个视图。uiPopoverView是弹出框本身。

这些结果不是最优的,但对于非生产的东西来说可能就足够了(我假设你想要这个来展示给其他人,等等)。

于 2012-04-11T04:23:20.653 回答