[Swift] UIView+Extension


import UIKit

public extension UIView {
    /// 獲取 控件高度
    func heightToFit() -> CGFloat {
        self.setNeedsLayout()
        self.layoutIfNeeded()
        return self.systemLayoutSizeFitting(UIView.layoutFittingCompressedSize).height
    }
    
    /// 圓角
    func maskRadius(radius: CGFloat, corners: UIRectCorner) {
        guard self.bounds != CGRect.zero else { return }
        
        let bezierPath = UIBezierPath(roundedRect: self.bounds, byRoundingCorners: corners, cornerRadii: CGSize(width: radius, height: radius))
        let shapeLayer = CAShapeLayer()
        shapeLayer.frame = self.bounds
        shapeLayer.path = bezierPath.cgPath
        self.layer.mask = shapeLayer
    }
    
    /// 邊框 + 圓角
    func maskBorder(radius: CGFloat, corners: UIRectCorner, fillColor: UIColor, strokeColor: UIColor, borderWidth: CGFloat) {
        guard self.bounds != CGRect.zero else { return }
        
        let bezierPath = UIBezierPath(roundedRect: self.bounds, byRoundingCorners: corners, cornerRadii: CGSize(width: radius, height: radius))
        
        let shapeLayer = CAShapeLayer()
        shapeLayer.frame = self.bounds
        shapeLayer.path = bezierPath.cgPath
        self.layer.mask = shapeLayer
        
        let borderLayer = CAShapeLayer()
        borderLayer.frame = self.bounds
        borderLayer.path = bezierPath.cgPath
        borderLayer.lineWidth = borderWidth
        borderLayer.fillColor = fillColor.cgColor
        borderLayer.strokeColor = strokeColor.cgColor
        self.layer.addSublayer(borderLayer)
    }
    
    /// 漸變色
    func addGradientLayer(start: UIColor, end: UIColor) {
        let gradientLayer = CAGradientLayer()
        gradientLayer.startPoint = CGPoint(x: 0, y: 0)
        gradientLayer.endPoint = CGPoint(x: 0, y: 1)
        gradientLayer.locations = [0, 1]
        gradientLayer.colors = [start.cgColor, end.cgColor]
        self.layer.addSublayer(gradientLayer)
    }
    
}

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容