Ale*_*xis 3 ios webp sdwebimage
我正在使用SDWebImage在我的iOS应用程序中加载图像,现在我想使用webp格式.
这是我的第一次尝试:
NSURL *url = [NSURL URLWithString:@"http://www.gstatic.com/webp/gallery/2.webp"];
[self.imageView setImageWithURL:url
placeholderImage:nil
options:SDWebImageProgressiveDownload
completed:^(UIImage *image, NSError *error, SDImageCacheType cacheType) {
if (error) {
UIAlertView *av = [[UIAlertView alloc] initWithTitle:@"Error" message:error.localizedDescription delegate:nil cancelButtonTitle:@"OK" otherButtonTitles:nil];
[av show];
}
}];
Run Code Online (Sandbox Code Playgroud)
如果图像是jpeg(我尝试过),但是使用webp,它会完美地工作.我第一次调用此代码的错误是:
Downloaded image has 0 pixels
Run Code Online (Sandbox Code Playgroud)
然后错误变为:
The operation couldn't be completed. (NSURLErrorDomain error -1100.)
Run Code Online (Sandbox Code Playgroud)
怎么了?
加
pod 'SDWebImage/WebP'
Run Code Online (Sandbox Code Playgroud)
进入你的podfile,然后点击pod install.Cocoapods也会照顾预处理器标志.
来自SDWebImage github页面
现在有3个子规格可用:Core,MapKit和WebP(这意味着你只能安装一些SDWebImage模块.默认情况下,你只需要Core,所以如果你需要WebP,你需要指定它).
Swift 5 和 Xcode 11
在 podfile 中使用 pod
pod 'SDWebImageWebPCoder'
Run Code Online (Sandbox Code Playgroud)
导入这个库
import SDWebImageWebPCoder
Run Code Online (Sandbox Code Playgroud)
在 AppDelegate 'didFinishLaunchingWithOptions' 下使用此代码
let WebPCoder = SDImageWebPCoder.shared
SDImageCodersManager.shared.addCoder(WebPCoder)
Run Code Online (Sandbox Code Playgroud)
在 ViewController 'viewDidLoad' 下使用此代码
@IBOutlet weak var imageView: UIImageView!
override func viewDidLoad() {
super.viewDidLoad()
//load from server
let onlineFileUrl = URL(string: "http://www.gstatic.com/webp/gallery/2.webp")
//load from project directory
let loaclFileUrl = Bundle.main.url(forResource: "2", withExtension: "webp")
DispatchQueue.main.async {
self.imageView.sd_setImage(with: onlineFileUrl)
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
7229 次 |
| 最近记录: |