我在我自己的视图控制器中嵌入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>>
...
但是,嵌入式用例中缺少此擦除视图。
任何想法如何让它出现?
答案 0 :(得分:0)
当您有多个页面时会自动显示。我猜你的PDF有问题。尝试其他来源的其他PDF,看看你是否遇到同样的问题。我一直使用PDF,而且洗涤器显示得很好。
我的另一个想法是,调整预览控制器的大小可能不正常。尝试将预览控制器加载为模态视图控制器(无父级),并查看是否仍然隐藏了滑块。