假设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];
答案 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];