【问题标题】:How to add QLPreviewController as Subview in objective C - iOS8如何在目标 C 中添加 QLPreviewController 作为子视图 - iOS8
【发布时间】:2014-11-05 09:07:40
【问题描述】:

在以前的 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 导航栏

谢谢

【问题讨论】:

    标签: objective-c ios8 qlpreviewcontroller


    【解决方案1】:

    我正在解决完全相同的问题。到目前为止,我发现的唯一解决方案如下:

    //    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 横向:在导航栏和内容之间有一些间距。我认为这是 Apple 的 QLPreviewController 而不是我的代码的问题。

    【讨论】:

    • 最后我使用了 UIWebView 作为解决方法。我不喜欢它,但它适用于所有版本。除了我的应用不能使用自动布局之外,它还支持 iOS 5.1.1 的旧 iPad
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-02-26
    • 1970-01-01
    • 1970-01-01
    • 2023-04-09
    • 1970-01-01
    相关资源
    最近更新 更多