很多朋友都還在2行代碼切圓角吧.......
哈哈 今天放出代碼 直接拖進你的項目就能用了.不用再被人家嘲笑.
直接放出2個分類,
基于SDWebImage封裝
//
// UIImageView+WebImage.swift
//
// Created by Jonson on 17/3/13.
//
import UIKit
extension UIImage {
/// 創(chuàng)建頭像圖像
///
/// - parameter size: 尺寸
/// - parameter backColor: 背景顏色
///
/// - returns: 裁切后的圖像
func ht_avatarImage(size: CGSize?, backColor: UIColor = UIColor.white, lineColor: UIColor = UIColor.lightGray) -> UIImage? {
var size = size
if size == nil {
size = self.size
}
let rect = CGRect(origin: CGPoint(), size: size!)
UIGraphicsBeginImageContextWithOptions(rect.size, true, 0)
backColor.setFill()
UIRectFill(rect)
let path = UIBezierPath(ovalIn: rect)
path.addClip()
draw(in: rect)
let ovalPath = UIBezierPath(ovalIn: rect)
ovalPath.lineWidth = 2
lineColor.setStroke()
ovalPath.stroke()
let result = UIGraphicsGetImageFromCurrentImageContext()
UIGraphicsEndImageContext()
return result
}
/// 生成指定大小的不透明圖象
///
/// - parameter size: 尺寸
/// - parameter backColor: 背景顏色
///
/// - returns: 圖像
func ht_image(size: CGSize? = nil, backColor: UIColor = UIColor.white) -> UIImage? {
var size = size
if size == nil {
size = self.size
}
let rect = CGRect(origin: CGPoint(), size: size!)
UIGraphicsBeginImageContextWithOptions(rect.size, true, 0)
backColor.setFill()
UIRectFill(rect)
draw(in: rect)
let result = UIGraphicsGetImageFromCurrentImageContext()
UIGraphicsEndImageContext()
return result
}
}
第二個
//
// UIImageView+WebImage.swift
//
// Created by Jonson on 17/3/13.
//
import SDWebImage
extension UIImageView {
/// 隔離 SDWebImage 設(shè)置圖像函數(shù)
///
/// - parameter urlString: urlString
/// - parameter placeholderImage: 占位圖像
/// - parameter isAvatar: 是否頭像
func ht_setImage(urlString: String?, placeholderImage: UIImage?, isAvatar: Bool = false) {
// 處理 URL
guard let urlString = urlString,
let url = URL(string: urlString) else {
// 設(shè)置占位圖像
image = placeholderImage
return
}
// 可選項只是用在 Swift衰絮,OC 有的時候用 ! 同樣可以傳入 nil
sd_setImage(with: url, placeholderImage: placeholderImage, options: [], progress: nil) { [weak self] (image, _, _, _) in
// 完成回調(diào) - 判斷是否是頭像
if isAvatar {
self?.image = image?.ht_avatarImage(size: self?.bounds.size)
}
}
}
}
最后調(diào)用
iconView.ht_setImage(urlString: model.image, placeholderImage: UIImage(named: "default_image"), isAvatar: true)