溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點(diǎn)擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

swift:使用協(xié)議protocol設(shè)置顏色,UIImage

發(fā)布時(shí)間:2020-06-26 13:47:12 來源:網(wǎng)絡(luò) 閱讀:653 作者:iOS技術(shù)者 欄目:移動開發(fā)

//使用協(xié)議 方便以后切換顏色配置文件、或者做主題配色之類亂七八糟產(chǎn)品經(jīng)理最愛的功能


protocol V2EXColorProtocol{

    var v2_backgroundColor: UIColor { get }

    var v2_navigationBarTintColor: UIColor { get }

    var v2_TopicListTitleColor : UIColor { get }

    var v2_TopicListUserNameColor : UIColor { get }

    var v2_TopicListDateColor : UIColor { get }

    

    var v2_LinkColor : UIColor { get }

    

    var v2_TextViewBackgroundColor: UIColor { get }

    

    var v2_CellWhiteBackgroundColor : UIColor { get }

    

    var v2_NodeBackgroundColor : UIColor { get }

    

    var v2_SeparatorColor : UIColor { get }

    

    var v2_LeftNodeBackgroundColor : UIColor { get }

    var v2_LeftNodeBackgroundHighLightedColor : UIColor { get }

    var v2_LeftNodeTintColor: UIColor { get }

    

    /// 小紅點(diǎn)背景顏色

    var v2_NoticePointColor : UIColor { get }

    

    var v2_ButtonBackgroundColor : UIColor { get }

}


class V2EXDefaultColor: NSObject,V2EXColorProtocol {

    static let sharedInstance = V2EXDefaultColor()

    fileprivate override init(){

        super.init()

    }

    

    var v2_backgroundColor : UIColor{

        get{

            return colorWith355RGB(242, g: 243, b: 245);

        }

    }

    var v2_navigationBarTintColor : UIColor{

        get{

            return colorWith355RGB(102, g: 102, b: 102);

        }

    }

    

    

    var v2_TopicListTitleColor : UIColor{

        get{

            return colorWith355RGB(15, g: 15, b: 15);

        }

    }

    

    var v2_TopicListUserNameColor : UIColor{

        get{

            return colorWith355RGB(53, g: 53, b: 53);

        }

    }

    

    var v2_TopicListDateColor : UIColor{

        get{

            return colorWith355RGB(173, g: 173, b: 173);

        }

    }

    

    var v2_LinkColor : UIColor {

        get {

            return colorWith355RGB(119, g: 128, b: 135)

        }

    }

    

    var v2_TextViewBackgroundColor :UIColor {

        get {

            return colorWith355RGB(255, g: 255, b: 255)

        }

    }

    

    var v2_CellWhiteBackgroundColor :UIColor {

        get {

            return colorWith355RGB(255, g: 255, b: 255)

        }

    }

    

    var v2_NodeBackgroundColor : UIColor {

        get {

            return colorWith355RGB(242, g: 242, b: 242)

        }

    }

    var v2_SeparatorColor : UIColor {

        get {

            return colorWith355RGB(190, g: 190, b: 190)

        }

    }

    

    var v2_LeftNodeBackgroundColor : UIColor {

        get {

            return colorWith355RGBA(255, g: 255, b: 255, a: 76)

        }

    }

    var v2_LeftNodeBackgroundHighLightedColor : UIColor {

        get {

            return colorWith355RGBA(255, g: 255, b: 255, a: 56)

        }

    }

    var v2_LeftNodeTintColor : UIColor {

        get {

            return colorWith355RGBA(0, g: 0, b: 0, a: 140)

        }

    }

    

    var v2_NoticePointColor : UIColor {

        get {

            return colorWith355RGB(207, g: 70, b: 71)

        }

    }

    var v2_ButtonBackgroundColor : UIColor {

        get {

            return colorWith355RGB(85, g: 172, b: 238)

        }

    }

}



 /////////////////////////



import UIKit


extension UIImage {

    

    func roundedCornerImageWithCornerRadius(_ cornerRadius:CGFloat) -> UIImage {

        

        let w = self.size.width

        let h = self.size.height


        var targetCornerRadius = cornerRadius

        if cornerRadius < 0 {

            targetCornerRadius = 0

        }

        if cornerRadius > min(w, h) {

            targetCornerRadius = min(w,h)

        }

        

        let p_w_picpathFrame = CGRect(x: 0, y: 0, width: w, height: h)

        UIGraphicsBeginImageContextWithOptions(self.size, false, UIScreen.main.scale)

        

        UIBezierPath(roundedRect: p_w_picpathFrame, cornerRadius: targetCornerRadius).addClip()

        self.draw(in: p_w_picpathFrame)


        let p_w_picpath = UIGraphicsGetImageFromCurrentImageContext()

        UIGraphicsEndImageContext()


        return p_w_picpath!

    }

 }


使用的地方


 /// 節(jié)點(diǎn)信息label的圓角背景圖

    fileprivate static var nodeBackgroundImage_Default =

        createImageWithColor( V2EXDefaultColor.sharedInstance.v2_NodeBackgroundColor ,size: CGSize(width: 10, height: 20))

            .roundedCornerImageWithCornerRadius(2)

            .stretchableImage(withLeftCapWidth: 3, topCapHeight: 3)



向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI