我正在尝试使用QLPreviewController显示文件.QL视图正确显示(被推送到我的导航控制器顶部)但内容为空白.但是,不会显示任何错误,应用程序也不会崩溃.检查文件是否存在返回true.(一个证据是,如果我使用[self.docInteractionController presentPreviewAnimated:YES];docInteractionController UIDocumentInteractionController是正确显示的文件).
代码直接取自Apple示例代码DocInteraction.
previewController.dataSource = self;
previewController.delegate = self;
// start previewing the document at the current section index
previewController.currentPreviewItemIndex = 0; //I want the first (and only) document
[[self navigationController] pushViewController:previewController animated:YES];
[previewController release];
Run Code Online (Sandbox Code Playgroud)
当前视图是a QLPreviewControllerDataSource, QLPreviewControllerDelegate,,委托方法如下:
- (NSInteger) numberOfPreviewItemsInPreviewController: (QLPreviewController *) controller
{
return self.documentURLs.count;
}
- (id)previewController:(QLPreviewController *)previewController previewItemAtIndex: (NSInteger)index
{
return [self.documentURLs objectAtIndex:index];
}
Run Code Online (Sandbox Code Playgroud)
documentURLs是一个包含文档的fileURL的NSArray.相同的fileURL UIDocumentInteractionController正确传递给显示器.我不一定要使用QuickLook,我可能只是依赖于UIDocumentInteractionController,但事实上它不起作用真的很烦人.
先感谢您
乔瓦尼
在iOS 6 beta 4和iOS 5.1.1中,我有左/右滑动,允许用户在UIViewController中托管的不同QLPreviewControllers之间滑动.
在iOS 6的发布版本中,滑动现在完全被忽略.
尝试将UIView作为预览控制器的子视图,试图让预览控制器的视图在预览控制器有机会吞下它们之前拦截滑动,但这些从未被触发.
任何人看到这个或知道一个解决方案.
谢谢,
我有一个表视图.在3D Touch上我预览了一个pdf QLPreviewController.偷看和流行音乐按预期工作.
出于某种原因,我无法让预览控制器视图向上滑动并显示我的操作项.我正在返回一个有效的UIPreviewActionItems数组(NSArray<id<UIPreviewActionItem>> *)previewActionItems.
出于某种原因,当显示peek时,没有任何滑动向上移动预览,并且没有任何操作项可见,正如我在其他应用程序中看到的那样.
目前我正在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];
Run Code Online (Sandbox Code Playgroud)
在iOS 10问题是由于下面的代码行.
[self addChildViewController:previewer];
Run Code Online (Sandbox Code Playgroud)
对于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];
Run Code Online (Sandbox Code Playgroud) 好的,所以我要做的是创建一个类似这张图片的文档查看器:

基本上应该发生的是,当屏幕被点击任何地方时,顶部和底部栏将出现.再次点击它们就会消失.
我已经进行了子类化QLPreviewController,并设法利用已经附带的(顶部)导航栏QLPreviewController.这很好用.现在,我需要在显示顶部栏时显示底栏.我可以UIToolbar在页面底部添加一个,但是我需要拦截触摸事件,这样我就可以隐藏/取消隐藏底栏.我似乎无法弄清楚如何让它工作.我尝试添加一个子类本身UITapGestureRecognizer的视图,QLPreviewController没有运气.我还尝试创建一个覆盖UIView,UITapGestureRecognizer但有一个阻止用户表单与下面的文档交互.
任何人都有任何想法如何做到这一点?提前致谢!
我在我的应用程序中集成了QLPreviewController和UIDocumentInteractionController,它运行正常.
唯一的问题是 - 我想配置底部工具栏,我想删除默认工具栏项,如下图所示:

有什么办法可以这样做,请建议.
uitoolbar qlpreviewcontroller uidocumentinteraction ios6 ios7
我正在使用QLPreviewController来显示PDF文件,每个页面都是杂志的散布.QLPreview的默认缩放是按宽度填充屏幕.在纵向模式下,前后封面(单页)填充屏幕,并在横向上放大以填充宽度,因此它们在底部被切断.这可以.
横向模式下的两页展开也可以缩放以填充宽度,因此可以很好地填充屏幕.但是,当您旋转到纵向模式时,点差会缩小到不可读的大小,并在屏幕底部留下大量空间.
有没有办法更改此视图的默认缩放,以便PDF将始终缩放以填充高度而不是宽度?
据我了解,Android中还没有与iOS的QLPreviewController等效的组件。我正在寻找一种无需使用Intent就可以将媒体文件(图像,电影,PDF,音频)显示集成到我的应用程序中的简便方法。是否有任何已知的第三方SDK用于此任务?
我正在使用以下代码使用 QLPreviewcontroller 在我的应用程序中显示一些文档,
let ql = QLPreviewController()
ql.dataSource = self
//ql.navigationItem.rightBarButtonItems = nil
ql.navigationItem.rightBarButtonItem = nil
presentViewController(ql, animated: true, completion: nil)
Run Code Online (Sandbox Code Playgroud)
我不想要 QLPreviewcontroller 右上角的共享按钮。我试过设置rightBarButtonItem为零,但它不起作用。
我怎么能隐藏呢?
我正在尝试在Xcode中调试适用于macOS的 Quick Look Extension 目标(预览版) ,尽管我指定了不同的可执行文件 ( ),但每次我在Xcode中运行Quick Look Simulator时,它都会不断启动 Quick Look Simulator ,这很烦人。qlmanage
如何阻止快速查看模拟器与我的预览一起启动qlmanage?我在我的计划中没有看到禁用此功能的方法。
谢谢。