PDFKit:如何将PDFView中的当前页面移动到特定偏移量

时间:2019-05-17 12:13:36

标签: ios objective-c swift pdfview ios-pdfkit

假设PDF中只有一页。 我要实现的目标:保存当前正在查看的PDFPage的缩放和偏移,并在用户返回该页面时以完全相同的偏移和缩放级别显示该页面。 我所取得的成就:计算了偏移量和缩放比例,并重新加载了页面,成功显示了页面的已保存缩放级别。 Iam无法设置偏移量。 使用以下方法尝试过,但没有效果。

1)

[_pdfView goToRect:rect onPage:[_pdfView.document pageAtIndex: page.unsignedLongValue ]];

2)

PDFDestination *destination =  [_pdfView.currentDestination initWithPage:[_pdfView.document pageAtIndex: page.unsignedLongValue ] atPoint:viewPoint];
    [_pdfView goToDestination:destination];

1 个答案:

答案 0 :(得分:0)

我能够使用goToRect完成此操作。我认为goToDestination存在问题。它总是导航到与我进入的位置不同的位置。

这是退出pdf时要保存位置的操作(请注意,我是从Swift编译此代码的,尚未在Objective C中进行测试):

    CGFloat savedScaleFactor = _pdfView.scaleFactor;
    //I use this to find the first page shown in my view. If you only have one page,
    //you can just use currentPage
    PDFPage *page = [_pdfView pageForPoint:CGPointZero nearest:YES];
    CGRect savedRect = [_pdfView convertRect:_pdfView.bounds toPage:page];
    NSInteger savedIndex = [_pdfView.document indexForPage:page];

然后恢复位置:

    _pdfView.scaleFactor = savedScaleFactor;
    PDFPage *page = [_pdfView.document pageAtIndex:savedIndex];
    [_pdfView goToRect:savedRect onPage:page];