我只需要获取UIImage,而不是使用Kingfisher library加载普通UIImageView
为了实现这一点,我使用UIImageView实现了一个变通方案:
let imageView = UIImageView()
imageView.kf_setImageWithURL(NSURL(string: cpa.imageName)!, placeholderImage: nil,
optionsInfo: [.Transition(ImageTransition.Fade(1))],
progressBlock: { receivedSize, totalSize in
print("\(receivedSize)/\(totalSize)")
},
completionHandler: { image, error, cacheType, imageURL in
anView!.image = image //anView IS NOT an UIImageView
anView!.frame.size = CGSize(width: 15.0, height: 15.0)
print("Finished")
})
这段代码运行得很好,但我想用一种更干净的方式来完成它。这个库中是否有一个方法可以只获取UIImage?异步和缓存
8条答案
按热度按时间sg24os4d1#
您可以使用
KingfisherManager
的retrieveImage(with:options:progressBlock: completionHandler:)
方法来执行此操作。也许是这样的:
ncecgwcz2#
这是在kingFisher 5中下载图像的最新语法(在swift 4.2中测试)
如何调用上述函数
svmlkihl3#
在新的Swift 3版本中,您可以使用ImageDownloader:
ImageDownloader
是Kingfisher的一部分,所以不要忘记import Kingfisher
。56lgkhnf4#
雨燕五:
我将在**@Hardik Thakkar上完成回答,添加一个更改,以便您可以返回**使用闭包的图像,可能会帮助某些人:
如何调用:
h9a6wy2h5#
Kingfisher 5中的另一种方式:
myzjeezk6#
翠鸟5号
查看更多信息:https://github.com/onevcat/Kingfisher/wiki/Kingfisher-5.0-Migration-Guide
jyztefdp7#
翠鸟5号
此代码100%有效
2admgd598#
如果要自定义UILabel,请从API调用UIImageView;
第一个
只需调用控制器中的函数