这是一个基于QLPreviewController的简单扩展,允许显示远程文件。
我创建它的主要原因是因为QLPreviewItem
指出previewItemURL
必须是一个文件类型的URL(仅限本地文件)。
$ cd your_project
$ git submodule add [email protected]:zats/watchtower.git Vendor/Watchtower
$ cd Vendor/Watchtower
$ git submodule update --init --recursive
Watchtower
文件夹添加到您的项目中QuickLook.framework
添加到您的目标中Vendor/AFNetworking
文件夹的文件#import "AZAPreviewController.h"
就是这样,其余的都与QLPreviewController
完全相同,只需在QLPreviewItem
实例中将远程URL指定为本地URL。
有关更多详细信息,请参阅附带的项目。
类AZAPreviewItem
简单地提供了QLPreviewItem
协议的默认实现,使previewItemURL
和previewItemTitle
参数可写。
如果您希望在远程项目加载失败时获得通知,您必须实现AZAPreviewControllerDelegate
对应的协议方法
- (void)AZA_previewController:(AZAPreviewController *)controller failedToLoadRemotePreviewItem:(id<QLPreviewItem>)previewItem withError:(NSError *)error
{
NSString *alertTitle = [NSString stringWithFormat:@"Failed to load file %@", previewItem.previewItemURL];
NSString *alertMessage = [error localizedDescription];
[[[UIAlertView alloc] initWithTitle:alertTitle
message:alertMessage
delegate:nil
cancelButtonTitle:@"OK"
otherButtonTitles:nil] show];
}
目前,如果滑动手势没有完成并且下一个项目没有完成加载,它可能会永远保持加载状态,非常感谢帮助