gpt4 book ai didi

iOS QLPreviewController 从远程服务器 URL 加载文件

转载 作者:可可西里 更新时间:2023-11-01 05:54:06 26 4
gpt4 key购买 nike

在 QLPreviewController 上从远程服务器加载文件时应该使用什么方法?我们什么时候应该使用我的服务器 API 下载文件以将它们加载到 QLPreviewController 上。我正在将 QLPreviewController 作为 subview 添加到我当前的 View 中。我可以使用数据源方法调用从服务器下载文件。

- (id<QLPreviewItem>)previewController:(QLPreviewController *)controller previewItemAtIndex:(NSInteger)index

但是一旦文件被下载我需要重新加载 QLPreviewController,这是应该完成的对于图像,我想查看图像库,以便滑动以查看从服务器下载的图像。谁能给我指点任何从远程服务器 URL 加载图像的教程

最佳答案

要显示任何支持 QLPreviewController 的文件,url 应该 是文件 URL。

(id<QLPreviewItem>)previewController:(QLPreviewController *)controller previewItemAtIndex:(NSInteger)index

它总是返回 fileURL - 如果您使用任何其他 URL,它会崩溃。下载完成后将文件保存在documents目录下,然后推送预览。

- (void)saveFileInDocDirectoryWithFileName:(NSString *)title{
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *docPath_ = [paths objectAtIndex:0];
NSString *filePath = [ docPath_ stringByAppendingPathComponent:title];

self.fileURL = [NSURL fileURLWithPath:filePath];
[self pushToPreViewWithURL:fileURL];
}


- (void)pushToPreViewWithURL:(NSURL *)filePathURL{
QLPreviewController *previewController = [[QLPreviewController alloc] init];
previewController.dataSource = self;
previewController.delegate = self;
// start previewing the document at the current section index

[[NSOperationQueue mainQueue] addOperationWithBlock:^{

[self.navigationController pushViewController:previewController animated:YES];

}];
}

然后在委托(delegate)方法中,返回fileURL:

 - (id)previewController:(QLPreviewController *)previewController previewItemAtIndex:(NSInteger)idx {
return self.fileURL;
}

关于iOS QLPreviewController 从远程服务器 URL 加载文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23472927/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com