1. webView 直接加载:
if ([self.filePath hasPrefix:@"http"]) {
//网络文件
[self.webView loadRequest:[NSURLRequest requestWithURL:[NSURL URLWithString:self.filePath]]];
}else if(self.filePath.length > 0){
NSString * nameFile = self.filePath.lastPathComponent;
if (self.title.length == 0) {
self.title = nameFile;
}
//本地文件
[self.webView loadRequest:[NSURLRequest requestWithURL:[NSURL fileURLWithPath:self.filePath]]];
}
2. pageViewController 加载:
PDFItem_ViewController * vc1 = [self viewControllerAtIndex:0 current:-1];
NSMutableArray *array = @[].mutableCopy;
if (vc1) {
[array addObject:vc1];
[_visibleVCArray addObject:vc1];
}
//设置初始化页面控制器
[self setViewControllers:array.copy direction:UIPageViewControllerNavigationDirectionReverse animated:YES completion:^(BOOL finished) {
}];
#pragma mark UIPageViewControllerDataSource
//翻页时候的前后控制器设置
- (UIViewController *)pageViewController:(UIPageViewController *)pageViewController viewControllerBeforeViewController:(UIViewController *)viewController{
PDFItem_ViewController * itemVC = (PDFItem_ViewController *)viewController;
NSInteger index = itemVC.pageIndex;
index--;
return [self viewControllerAtIndex:index current:itemVC.pageIndex];
}
- (UIViewController *)pageViewController:(UIPageViewController *)pageViewController viewControllerAfterViewController:(UIViewController *)viewController{
PDFItem_ViewController * itemVC = (PDFItem_ViewController *)viewController;
NSInteger index = itemVC.pageIndex;
index ++;
return [self viewControllerAtIndex:index current:itemVC.pageIndex];
}
//自定义方法:用于根据pageIndex 获取不同的控制器,这里采用复用的技术,类似tableView的cell ,觉得减少控制器的创建销毁,提示性能,减少能耗
- (PDFItem_ViewController *)viewControllerAtIndex:(NSUInteger)index current:(NSUInteger)currentIndex
{
//Return the PDFViewController for the given index.
if ((index > _pageTotal) ) {
return nil;
}
PDFItem_ViewController *dataViewController = nil;
//Create a new view controller and pass suitable data.
if (self.visibleVCArray.count > 0) {
for (PDFItem_ViewController *validVC in self.visibleVCArray) {
if (validVC.pageIndex != currentIndex) {
dataViewController = validVC;
NSLog(@"复用了");
}
}
}
if (!dataViewController) {
dataViewController = [[PDFItem_ViewController alloc]init];
dataViewController.view.frame = self.view.bounds;
[self.visibleVCArray addObject:dataViewController];
}
dataViewController.pageIndex = index;
//设置页面相应的渲染内容
dataViewController.pageRef = CGPDFDocumentGetPage(_pdfRef, index+1);
return dataViewController;
}