加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

AlamofireImage 使用 - swift加载网络图片,缩放图片,生成圆形

发布时间:2020-12-14 05:59:07 所属栏目:百科 来源:网络整理
导读:最近项目中需要用到网络图片加载,在网上找了很多图片加载的文章,不过感觉都不怎么方便。后来找到 AlamofireImage这个库,使用起来非常简单,readme也非常清晰,记录一下使用过程,希望帮到需要的人,本文代码使用的是AlamofireImage 3.3版本。 优点 使用简
最近项目中需要用到网络图片加载,在网上找了很多图片加载的文章,不过感觉都不怎么方便。后来找到 AlamofireImage这个库,使用起来非常简单,readme也非常清晰,记录一下使用过程,希望帮到需要的人,本文代码使用的是AlamofireImage 3.3版本。

优点

  • 使用简单,两行代码加载网络图片
  • 自动缓存,加载过的图片,在没网络的时候仍然可以显示。
  • 有一些常用的扩展,方便对图片进行操作。

导入

//使用cocoapods导入
  pod 'AlamofireImage','~> 3.3'

使用

真的非常简单,两行代码搞定(记得要 import AlamofireImage)

let imageView = UIImageView(frame: frame)
let url = URL(string: "https://httpbin.org/image/png")!
imageView.af_setImage(withURL: url)

设置默认图片:

let imageView = UIImageView(frame: frame)
let url = URL(string: "https://httpbin.org/image/png")!
let placeholderImage = UIImage(named: "placeholder")!
imageView.af_setImage(withURL: url,placeholderImage: placeholderImage)

对图片进行缩放:

let image = UIImage(named: "unicorn")!
let size = CGSize(width: 100.0,height: 100.0)
let scaledImage = image.af_imageScaled(to: size)
let aspectScaledToFitImage = image.af_imageAspectScaled(toFit: size)
let aspectScaledToFillImage = image.af_imageAspectScaled(toFill: size)

圆形图片:

let image = UIImage(named: "unicorn")!
let radius: CGFloat = 20.0
let roundedImage = image.af_imageRounded(withCornerRadius: radius)
let circularImage = image.af_imageRoundedIntoCircle()

扩展

虽然使用AlamofireImage加载图片已经非常简单,不过每次需要加载网络图片都需要导包,并且图片要求传URL,所以我们可以做一些简单的扩展。

import AlamofireImage
extension UIImageView{
    func setImageUrl(_ string : String?) {
        if(string != nil){
            let url = URL(string: string!)!
            self.af_setImage(withURL: url)
        }
    }
}

//使用
userImgImage.setImageUrl("https://httpbin.org/image/png")

注意

在AlamofireImage的readme中,提到一下用法,其中responseImage已经被废弃,可能无法使用。在源码中可以看到@discardableResult标记

Alamofire.request("https://httpbin.org/image/png").responseImage { response in
    debugPrint(response)

    print(response.request)
    print(response.response)
    debugPrint(response.result)

    if let image = response.result.value {
        print("image downloaded: (image)")
    }
}

内容参考

AlamofireImage 官方README

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读