【发布时间】:2017-01-07 10:29:51
【问题描述】:
目前我正在 iOS10 中测试我当前的版本。我正在使用 Xcode 8 beta 6 进行测试。此处 Quicklook/QLPreviewController 委托方法未调用。 此代码集已在 XCode 7 和 iOS 9.3 版本中使用。我在 Apple Developer 论坛中检查了这个问题。但找不到答案。有人解决了这个问题吗? (我使用的是 Objective-C)
如何在 XCode 8 (iOS 10) 中使用 Quicklook/QLPreviewController?
//----------------- iOS 10 的解决方案(预览器作为子视图)------------------ -
当您将预览器添加为子视图时会出现此问题。然后我们主要在 iOS 9.3 及以下版本中使用下面的代码行。
[self addChildViewController:previewer];
self.view addSubview:previewer.view];
[previewer didMoveToParentViewController:self];
在 iOS 10 中的问题是由于以下代码行造成的。
[self addChildViewController:previewer];
对于 iOS 10,我们需要检查版本并添加上面的代码行。下面是工作代码集。
QLPreviewController* previewer = [[QLPreviewController alloc] init];
previewer.dataSource = self;
previewer.delegate = self;
// To avoid iOS 10 previewer issue.
if (SYSTEM_VERSION_LESS_THAN(@"10.0")) {
[self addChildViewController:previewer];
}
CGFloat width = self.view.frame.size.width;
CGFloat height = self.view.frame.size.height;
previewer.view.frame = CGRectMake(0, 102, width, height-300);
[self.view addSubview:previewer.view];
[previewer didMoveToParentViewController:self];
【问题讨论】:
-
谢谢,也适用于 Xamarin.iOS。
标签: objective-c ios10 xcode8 quicklook qlpreviewcontroller