【发布时间】:2012-11-20 15:56:57
【问题描述】:
我通过像这样将QLPreviewController 添加为子视图控制器,将QLPreviewController 嵌入到我自己的视图控制器中(contentArea 是一个UIView 属性,用于确定预览应该使用屏幕的哪个部分):
QLPreviewController* preview = [[QLPreviewController alloc] init];
preview.dataSource = self;
preview.delegate = self;
[self addChildViewController:preview];
CGFloat w = self.contentArea.frame.size.width;
CGFloat h = self.contentArea.frame.size.height;
preview.view.frame = CGRectMake(0, 0,w, h);
[self.contentArea addSubview:preview.view];
[preview didMoveToParentViewController:self];
self.qlPreviewController = preview;
到目前为止,这有效。但是,当我打开 PDF 时,当QLPreviewController 全屏显示时,我没有看到右侧显示的页面浏览器(见屏幕截图)。
使用DCIntrospect 我看到有一个QLScrubView 类型的特殊子视图负责这个:
...
| <QLScrubView: 0x1274e990; frame = (963 64; 61 704); autoresize = LM+H; layer = <CALayer: 0x1274eb30>>
| | <QLThumbnailView: 0x11fc6460; frame = (17 329; 32 45); layer = <CALayer: 0x11fcb4b0>>
| | <QLThumbnailView: 0x11fd45a0; frame = (17 382; 32 45); layer = <CALayer: 0x11fbe830>>
| | <QLThumbnailView: 0x1274dae0; frame = (9 268; 48 61); layer = <CALayer: 0x1273b860>>
...
但是,嵌入式用例中缺少此擦洗视图。
任何想法如何使它出现?
【问题讨论】:
-
嗨丹尼尔!有什么解决办法吗??
-
没有。从那时起,我们已经切换到 PSPDFKit。更灵活,疼痛更少。但当然是商业的。一个免费的替代品可能是github.com/vfr/Reader
-
谢谢,我已经知道 vfr/Reader,但我需要一个垂直滚动页面的解决方案。不需要很多 vfr/Reader 功能。
标签: ios uiviewcontroller uikit qlpreviewcontroller