UIDocumentInteractionController
似乎无法与新的 iOS 7 状态栏正确交互,尤其是在横向上。我现在用于显示查看器的代码:
- (void)viewDidAppear:(BOOL)animated
{
[super viewDidAppear:animated];
NSString *filePath = [[NSBundle mainBundle] pathForResource:@"example" ofType:@"pdf"];
NSURL *url = [NSURL fileURLWithPath:filePath];
UIDocumentInteractionController *pdfViewer = [UIDocumentInteractionController interactionControllerWithURL:url];
[pdfViewer setDelegate:self];
[pdfViewer presentPreviewAnimated:YES];
}
- (UIViewController *)documentInteractionControllerViewControllerForPreview:(UIDocumentInteractionController *)controller
{
return self;
}
- (UIView *)documentInteractionControllerViewForPreview:(UIDocumentInteractionController *)controller
{
return self.view;
}
当交互控制器首次出现时,状态栏与标题重叠。
旋转到另一侧的横向暂时修复了该行为。
正如预期的那样,点击文档本身可以关闭框架。但是,一旦再次点击文档以激活框架,就会再次发生重叠,就像第一张图像一样。
我试过设置documentInteractionControllerRectForPreview
无济于事。
- (CGRect)documentInteractionControllerRectForPreview:(UIDocumentInteractionController *)controller
{
return CGRectMake(0, 20, self.view.bounds.size.width, self.view.bounds.size.height);
}
我不希望在交互控制器出现时隐藏状态栏,并且我认为可以正确执行此操作,因为 Mail 应用程序行为正确并且看起来它使用的是同一个类。
为任何想要使用代码的人附加的最小示例项目: https ://hostr.co/PiluL1VSToVt