swift UIImage 圓形圖標:
import UIKit
extension UIImageView{
/**
* 設置圓形的圖片
* param: urlStr 網絡圖片地址
* param: placeholderStr 占位圖片名稱
* param: radius 圓角半徑
*/
func setImageOfRound(urlStr:String,placeholderStr:String,radius:CGFloat){
let url = URL(string: urlStr)
let urlRequest = URLRequest(url: url!)
self.setImageWith(urlRequest, placeholderImage:UIImage(named: placeholderStr), success: {(urlRequest,response,image)->Void in
self.image = image //這句一定要比self.cornerRadius(radius: radius)先執行
self.cornerRadius(radius: radius)
//
}, failure: {
(urlRequest,response,error)->Void in
})
}
/**
* param: radius 圓角半徑
* 注意:只有當imageView.image不為nil時,調用此方法才有效果
*/
func cornerRadius(radius:CGFloat){
//開始圖形上下文
UIGraphicsBeginImageContextWithOptions(self.bounds.size, false, UIScreen.main.scale)
//獲取圖形上下文
let ctx = UIGraphicsGetCurrentContext()
//根據一個rect創建一個橢圓
ctx!.addEllipse(in: self.bounds)
//裁剪
ctx!.clip()
//將原照片畫到圖形上下文
self.image!.draw(in: self.bounds)
//從上下文上獲取剪裁后的照片
let newImage = UIGraphicsGetImageFromCurrentImageContext()
//關閉上下文
UIGraphicsEndImageContext()
self.image = newImage
}
}