生活随笔
收集整理的這篇文章主要介紹了
Swift之extension的使用
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
swift中的extension(即為擴(kuò)展):是向已有的一個(gè)類、結(jié)構(gòu)體或者枚舉添加新功能(實(shí)例方法或者類型方法),包括在沒有獲取源代碼的情況下擴(kuò)展類型的能力。
- 對(duì)UIView擴(kuò)展實(shí)現(xiàn)swift中的xib或者storyboard可視化(設(shè)置圓角cornerRadius、設(shè)置borderWidth等),這樣在xib或者storyboard中便可直視控件的相應(yīng)的屬性設(shè)置效果,不要要Run之后再去看效果:
extension UIView {@IBInspectable var borderWidth: CGFloat {get {return self
.layer.borderWidth}
set {self
.layer.borderWidth = newValue}}@IBInspectable var borderColor: UIColor {get {return UIColor(cgColor:self
.layer.borderColor!)}
set {self
.layer.borderColor = newValue
.cgColor}}var cornerRadius: CGFloat {get {return self
.layer.cornerRadius}
set {self
.layer.cornerRadius = newValueself
.layer.masksToBounds = true}}
}
- 對(duì)UIImage的擴(kuò)展(直接可以用點(diǎn)語法調(diào)用擴(kuò)展的屬性和方法即可)
extension
UIImage {var height :
CGFloat{
return self.size.height}var width :
CGFloat{
return self.size.width}func imageCompress(targetWidth:
CGFloat) ->
UIImage {let targetHeight = (targetWidth/width)*heightUIGraphicsBeginImageContext(
CGSize(width: targetWidth, height: targetHeight))
self.draw(in:
CGRect(x:
0, y:
0, width: targetWidth, height: targetHeight))let newImage :
UIImage = UIGraphicsGetImageFromCurrentImageContext()!UIGraphicsEndImageContext()
return newImage}func blurImage(blurValue:
NSNumber) ->
UIImage {let context = CIContext(options: [kCIContextUseSoftwareRenderer:
true])let ciImage = CoreImage
.CIImage(image:
self)let blurFilter = CIFilter(name:
"CJGaussianBlur")blurFilter?
.setValue(ciImage, forKey: kCIInputImageKey)blurFilter?
.setValue(blurValue, forKey:
"inputRadius")let imageRef = context
.createCGImage((blurFilter?
.outputImage)!, from: (ciImage?
.extent)!)let newImage =
UIImage(cgImage: imageRef!)
return newImage}
}
總結(jié)
以上是生活随笔為你收集整理的Swift之extension的使用的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。