在以前的iOS版本中,我曾经将QLPreviewController添加为子视图。使用我自己的应用程序标题和导航栏非常方便,但在iOS 8中,它在标题下方添加了一个空白区域。它是自己的导航栏的空间。
您可以看到附加的img:
我使用此代码:
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的功能?我只想隐藏qlpreviewcontroller导航栏
由于
答案 0 :(得分: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 landscape:在navBar和内容之间有一些间距。我认为这与Apple的QLPreviewController有关,而不是我的代码。