问题描述
我正在尝试将 QLPreviewController 作为 Tabview 控制器中的选项卡之一。它能够正确显示 PDF 但未显示 penkit/Markup 原因:我想展示 Pencilkit 在 PDF 上绘制并保存它(来自本地或网络的其他类型的文件也因此是 QL),还从 PDF(其他)中捕获亮点
Xcode 12.3 斯威夫特 5 iOS/iPAD:14
问题: Q1) 在 PDF 文件停止时无法查看标记或编辑按钮。尝试隐藏标签栏和子视图始终为零。任何帮助表示赞赏。
Q2) 是否可以覆盖 menuItem 中的突出显示扇区/功能(在 PDF 上我看到不错的选项,所以想使用它但想保存文本选择)?
class QLPreviewController2: QLPreviewController {
var toolbars: [UIView] = []
var observations : [NSkeyvalueObservation] = []
override func viewDidLoad() {
super.viewDidLoad()
delegate = self
}
override func viewWillAppear(_ animated: Bool) {
super.viewWillAppear(animated)
}
override func viewDidLayoutSubviews() {
super.viewDidLayoutSubviews()
}
}
extension QLPreviewController2: QLPreviewControllerDelegate {
func previewController(_ controller: QLPreviewController,editingModeFor previewItem: QLPreviewItem) -> QLPreviewItemEditingMode {
return .updateContents
}
func previewController(_ controller: QLPreviewController,shouldOpen url: URL,for item: QLPreviewItem) -> Bool {
return true
}
func previewController(_ controller: QLPreviewController,didUpdateContentsOf previewItem: QLPreviewItem) {
}
func previewController(_: QLPreviewController,didSaveEditedcopyOf: QLPreviewItem,at: URL) {
}
}
我的 TabVC 是
class TabVC: UITabBarController,UITabBarControllerDelegate {
override func viewDidLoad() {
super.viewDidLoad()
}
override func viewWillAppear(_ animated: Bool) {
super.viewWillAppear(animated)
guard let viewcontollers = viewControllers else {
return
}
let item1 = QLPreviewController2()
item1.dataSource = self
// self.navigationItem.rightBarButtonItems?.append(item1.editButtonItem) //did not work
item1.isEditing = true //did not work
item1.setEditing(true,animated: true)//did not work
let icon1 = UITabBarItem(title: "Title",image: UIImage(named: "doc"),selectedImage: UIImage(named: "doc"))
item1.tabBarItem = icon1
self.viewControllers!.append(item1)
// navigationItem.leftBarButtonItems?.append(item1.editButtonItem) //did not work
}
//Delegate methods
func tabBarController(_ tabBarController: UITabBarController,shouldSelect viewController: UIViewController) -> Bool {
print("Should select viewController: \(viewController.title ?? "") ?")
return true;
}
}
extension TabVC: QLPreviewControllerDataSource {
func numberOfPreviewItems(in: QLPreviewController) -> Int {
return 1
}
func previewController(_ controller: QLPreviewController,previewItemAt index: Int) -> QLPreviewItem {
print("2")
let fileUrl = Bundle.main.url(forResource: "some",withExtension: ".pdf",subdirectory: nil,localization: nil)
let filePreview = PreviewItem2()
filePreview.previewItemURL = fileUrl
return filePreview
}
}
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)