在QLPreviewController中配置底栏

时间:2013-10-02 18:49:59

标签: ios6 ios7 uitoolbar uidocumentinteraction qlpreviewcontroller

我在我的应用程序中集成了QLPreviewController和UIDocumentInteractionController,它运行正常。

唯一的问题是 - 我想配置底部工具栏,我想删除默认工具栏项,如下图所示:

Bottom tool-bar with items to be removed

有没有办法这样做,请建议。

3 个答案:

答案 0 :(得分:2)

简答:不,不在IOS6 +

说明

关于QLPreviewController需要注意的一点是,它不是要自定义的。还有其他库允许您更改功能,例如:

https://github.com/rob-brown/RBFilePreviewer

哪些无法在iOS 6 +中运行,因为Apple在QLPreviewController中做了很大的改动,并且它在技术上在一个单独的进程中运行。虽然可能(不确定)使用私人api,但您的应用程序将被拒绝。

您可以在此处找到有关此更改的更多信息: http://oleb.net/blog/2012/10/remote-view-controllers-in-ios-6/

希望这有帮助

答案 1 :(得分:2)

  1. 子类UIToolbar
  2. 使用 init(navigationBarClass:toolbarClass:)创建UINavigationController并提供UIToolbar subsclass
  3. 步骤1中创建的toolbarClass
  4. 创建QLPreviewController实例并推送到UINavigationController堆栈
  5. UIToolbar subsclass内部覆盖 setItems(_:animated:)。要删除所有按钮,请使用空数组super.setItems([], animated: false)调用super,否则您只能添加要保留的按钮。
  6. 在步骤2中创建的UINavigationController
  7. 以下是示例PreviewControllerHideBottomButtons

答案 2 :(得分:0)

  • 子类QLPreviewController。
  • 在视图层次结构中搜索工具栏。
  • 在您的班级中拥有与原始工具栏具有相同框架的UIToolbar属性。
  • 使用您想要的任何按钮将您自己的工具栏放在默认工具栏上方。
  • 如果您希望将其隐藏为QLPreviewController的默认行为,则可以键值观察默认工具栏的隐藏属性并相应地显示/隐藏您自己的属性。