我們在IOS開發(fā)中,時常需要將一些原本是方形的圖片剪切成圓形或者邊框是曲線的樣子,表現(xiàn)得活潑生動一些.
注意:因為最近在嘗試用Swiftl開發(fā),所以這里的語言使用的就是Swift,OC的語法也是相近的.
這是修改之前的:
圖一
然后這是修改之后的:
圖二
第一種:通過圖形繪制
extension UIImage{
func createImage(isCornored: Bool = true,size: CGSize = CGSize.zero,backgroundColor: UIColor = UIColor.white,callBack: @escaping (_ image: UIImage) ->()) {
//在子線程中執(zhí)行
DispatchQueue.global().async {
let rect = CGRect(origin: CGPoint.zero, size: size)
//1. 開啟上下文
UIGraphicsBeginImageContext(size)
//2. 設置顏色
backgroundColor.setFill()
//3. 顏色填充
UIRectFill(rect)
//4. 圖像繪制
//切回角
let path = UIBezierPath(ovalIn: rect)
path.addClip()
self.draw(in: rect)
//5. 獲取圖片
let image = UIGraphicsGetImageFromCurrentImageContext()
//6 關閉上下文
UIGraphicsEndImageContext()
//回到主線程刷新UI
DispatchQueue.main.async(execute: {
callBack(image!)
})
}
}
}
第二種:剪切圓角
//設置圓角半徑(通過設置這個的大小,越接近你的矩形寬度,圓的形狀越明顯)
iconImageView.layer.cornerRadius = 50
//必做的一步
iconImageView.layer.masksToBounds = true
//設置邊框寬度
iconImageView.layer.borderWidth = 5
//設置邊框的顏色
iconImageView.layer.borderColor = UIColor.black
這兩種方法都挺實用的,不過第二種比較簡短,第一種適合用來提高自己的逼格吧.