【问题标题】:Save user progress while reading a document. Swift在阅读文档时保存用户进度。迅速
【发布时间】:2019-11-20 15:59:20
【问题描述】:

我有一张带有 pdf 文档的表格。打开文档时,用户切换到具有自定义类 (PDFView) 的视图。

需要保存最后一次点击按钮读取用户文档的地方。

查看读取文档的控制器代码。

import UIKit
import PDFKit

var nameFile:String?
var titleChapter:String?
class pdfView: UIViewController {


    //save progress doc
    @IBAction func SaveScrollAction(_ sender: UIBarButtonItem)
    {
        let  dest =   pdfDocView.currentDestination
    pdfDocView.go(to: dest!)

    }
    //Pdf view
    @IBOutlet var pdfDocView: PDFView!
    override func viewDidLoad() {
        super.viewDidLoad()

        self.navigationItem.title = titleChapter
        navigationController?.navigationBar.barTintColor = #colorLiteral(red: 0.5326591512, green: 0, blue: 0.002649205323, alpha: 0.8)

        //name Documents for view
        if let path = Bundle.main.path(forResource: nameFile,  ofType:"pdf") {
            if let pdfDocument = PDFDocument(url: URL(fileURLWithPath: path)) {
                pdfDocView.displayMode = .singlePageContinuous
                pdfDocView.autoScales = true
                pdfDocView.displayDirection = .vertical
                pdfDocView.document = pdfDocument
            }

        }

    }

}

【问题讨论】:

  • 您能更具体地说明问题吗?是什么阻止您实现您所描述的功能?您是否需要知道如何获取 PDF 文档中的当前位置?想知道如何保存状态?
  • 我需要保存文档中的最后一个用户位置。如果已保存并将文档留在第七页,则下次打开同一文档时,显示第七页。
  • 是的,我明白这个要求。我在问你的具体问题是什么。什么具体问题阻止您编写保存最后一个用户位置的代码?
  • 我尝试使用 currentDestination 属性。它可以节省,但仅在第一次按下时。 (如果我将第七页保存在第一个文档中)此外,当我尝试将其保存在另一个文档中时,它只是翻到同一文档中的第七页。不知道如何分别保存用户在每个文档中的位置。

标签: swift uitableview view save doc


【解决方案1】:

我相信你可以使用属性currentDestination,应该包含当前页面和位置。要在 PDFView 中设置目标对象,请使用方法go(to destination: PDFDestination)

您可以使用常规存储解决方案保存对象。

Apple PDFKit Docs

【讨论】:

  • 我编辑了操作按钮。但这并不像我预期的那样工作。第一次按下时,它会保存我所在的位置(例如,文档中的第三页),然后当我转到此停靠栏并单击按钮时,它会转到我保存的位置。如果我单击另一个文档,它会跳转到我之前保存的页面。为此,我只能保存一次位置。我做错了什么?
  • 我不确定我是否理解了这个问题。但是,您应该保存每个文档的当前状态(比如说当前页面),这意味着,在保存 PDFDestination 对象时,您需要将该对象与特定的文档标识符相关联,并且只在需要时加载。在我看来,您正在保存目标,并且打开的每个文档都在加载相同的对象。
  • 是的,你写的都是正确的。谢谢。我现在试试
  • 太棒了!如果您需要更多帮助,请告诉我?
  • 我就是做不好。为每个文档单独存储。到目前为止,相同的结果为所有参数保存相同的值。你能展示一下如何正确地实现它吗?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-05-04
  • 2021-09-23
  • 1970-01-01
  • 2015-03-15
  • 2016-04-24
  • 1970-01-01
相关资源
最近更新 更多