2014-11-05 79 views
3

在之前的iOS版本中,我曾经将QLPreviewController添加为子视图。使用我自己的应用程序标题和导航栏非常方便,但在iOS 8中,它在标题下方添加了一个空白区域。这是它自己的导航栏的空间。如何在目标C中添加QLPreviewController作为子视图 - iOS8

你可以看到所附IMG:screenshot which shows the white bar

我用这个代码:

QLPreviewController *previewController = [[QLPreviewController alloc] init]; 
previewController.dataSource = self; 
previewController.delegate = self; 
previewController.currentPreviewItemIndex = 0; 
previewController.view.frame = CGRectMake(0, 0, self.containerView.frame.size.width, self.containerView.frame.size.height); 
[self addChildViewController:previewController]; 
[previewController didMoveToParentViewController:self]; 
[self.containerView addSubview:previewController.view]; 

我如何十个分量的iOS7的funcionality?我只想隐藏qlpreviewcontroller导航栏

感谢

回答

0

我解决完全相同的问题。我迄今发现的唯一的解决办法是:

// qlController.view.frame = CGRectMake(0, 0, CGRectGetWidth(self.view.bounds), CGRectGetHeight(self.view.bounds));//self.view.bounds; 
// qlController.view.autoresizingMask = UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight; 

[self addChildViewController:qlController]; 
[self.view addSubview:qlController.view]; 

NSDictionary *bindings = @{@"qlPreviewController": qlController.view}; 
qlController.view.translatesAutoresizingMaskIntoConstraints = NO; 
[self.view addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@"H:|[qlPreviewController]|" options:0 metrics:nil views:bindings]]; 
[self.view addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@"V:|[qlPreviewController]|" options:0 metrics:nil views:bindings]]; 

[qlController didMoveToParentViewController:self]; 

注释行是遗留代码,完美地工作在iOs7。主要想法是停止使用弹簧和支柱,并开始使用自动布局。结果看起来不错,但旋转仍然存在一些问题。

做工不错: iPhone 4S的/ 5/6/6 + iOs7纵向+横向,纵向iOS8上iPad的 所有车型iOs7,8纵向+横向

作品不好: iPhone 4S的/ 5/6/6 + iOs8横向:navBar和内容之间有一定的间距。我认为这是Apple的QLPreviewController而不是我的代码的问题。

+0

最后我用一个UIWebView作为解决方法。我不喜欢它,但它适用于所有版本。除了我的应用程序不能使用自动布局,它支持iOS 5.1.1的旧iPad – buttcmd 2014-11-10 19:26:33

相关问题