swift中的分類

1.概念

在oc中為了增強(qiáng)已有類的功能秘狞,我們經(jīng)常使用分類叭莫。使用分類,我們可以在不破壞原有類的結(jié)構(gòu)的前提下烁试,對(duì)原有類進(jìn)行模塊化的擴(kuò)展雇初。
但是在swift中沒有分類這種寫法了。相對(duì)應(yīng)的是swift中只有擴(kuò)展(Extensions)减响。
下面是swift中擴(kuò)展(Extensions)的說明:
擴(kuò)展就是向一個(gè)已有的類靖诗、結(jié)構(gòu)體、枚舉類型或者協(xié)議類型添加新功能(functionality)支示。這包括在沒有權(quán)限獲取原始源代碼的情況下擴(kuò)展類型的能力(即逆向建模)刊橘。擴(kuò)展和 Objective-C 中的分類(categories)類似。(不過與 Objective-C 不同的是颂鸿,Swift 的擴(kuò)展沒有名字促绵。)

2.對(duì)UIView的擴(kuò)展
extension UIView {
    // .x
    public var x: CGFloat {
        get {
            return self.frame.origin.x
        }
        set {
            var rect = self.frame
            rect.origin.x = newValue
            self.frame = rect
        }
    }
    
    // .y
    public var y: CGFloat {
        get {
            return self.frame.origin.y
        }
        set {
            var rect = self.frame
            rect.origin.y = newValue
            self.frame = rect
        }
    }
    
    // .maxX
    public var maxX: CGFloat {
        get {
            return self.frame.maxX
        }
    }
    
    // .maxY
    public var maxY: CGFloat {
        get {
            return self.frame.maxY
        }
    }
    
    // .centerX
    public var centerX: CGFloat {
        get {
            return self.center.x
        }
        set {
            self.center = CGPoint(x: newValue, y: self.center.y)
        }
    }
    
    // .centerY
    public var centerY: CGFloat {
        get {
            return self.center.y
        }
        set {
            self.center = CGPoint(x: self.center.x, y: newValue)
        }
    }
    
    // .width
    public var width: CGFloat {
        get {
            return self.frame.size.width
        }
        set {
            var rect = self.frame
            rect.size.width = newValue
            self.frame = rect
        }
    }
    
    // .height
    public var height: CGFloat {
        get {
            return self.frame.size.height
        }
        set {
            var rect = self.frame
            rect.size.height = newValue
            self.frame = rect
        }
    }
}
使用
let label = UILabel()
        label.x
        label.width
        label.centerX
3.對(duì)UIColor的擴(kuò)展
extension UIColor {

    public func colorWithHex(rgb:Int, alpha: CGFloat) -> UIColor {
        return UIColor(red: ((CGFloat)((rgb & 0xFF0000) >> 16))/255.0, green: ((CGFloat)((rgb & 0xFF00) >> 8))/255.0, blue: ((CGFloat)(rgb & 0xFF)) / 255.0, alpha: alpha)        
    }

    // 紅色
    class var Red: UIColor {
        return UIColor(red: 252/255.0, green: 106/255.0, blue: 125/255.0, alpha: 1.0)
    }

    // 灰色背景顏色
    class var Gray: UIColor {
        return UIColor(red: 242/255.0, green: 243/255.0, blue: 248/255.0, alpha: 1.0)
    }
}

使用

UIColor.clear.colorWithHex(rgb: 0x2588dd, alpha: 1.0)
UIColor.Red
UIColor.Gray
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市嘴纺,隨后出現(xiàn)的幾起案子败晴,更是在濱河造成了極大的恐慌,老刑警劉巖栽渴,帶你破解...
    沈念sama閱讀 219,490評(píng)論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件尖坤,死亡現(xiàn)場離奇詭異,居然都是意外死亡闲擦,警方通過查閱死者的電腦和手機(jī)糖驴,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,581評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門僚祷,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人贮缕,你說我怎么就攤上這事“秤埽” “怎么了感昼?”我有些...
    開封第一講書人閱讀 165,830評(píng)論 0 356
  • 文/不壞的土叔 我叫張陵,是天一觀的道長罐脊。 經(jīng)常有香客問我定嗓,道長,這世上最難降的妖魔是什么萍桌? 我笑而不...
    開封第一講書人閱讀 58,957評(píng)論 1 295
  • 正文 為了忘掉前任宵溅,我火速辦了婚禮,結(jié)果婚禮上上炎,老公的妹妹穿的比我還像新娘恃逻。我一直安慰自己,他們只是感情好藕施,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,974評(píng)論 6 393
  • 文/花漫 我一把揭開白布寇损。 她就那樣靜靜地躺著,像睡著了一般裳食。 火紅的嫁衣襯著肌膚如雪矛市。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,754評(píng)論 1 307
  • 那天诲祸,我揣著相機(jī)與錄音浊吏,去河邊找鬼。 笑死救氯,一個(gè)胖子當(dāng)著我的面吹牛找田,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播径密,決...
    沈念sama閱讀 40,464評(píng)論 3 420
  • 文/蒼蘭香墨 我猛地睜開眼午阵,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了享扔?” 一聲冷哼從身側(cè)響起底桂,我...
    開封第一講書人閱讀 39,357評(píng)論 0 276
  • 序言:老撾萬榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎惧眠,沒想到半個(gè)月后籽懦,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,847評(píng)論 1 317
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡氛魁,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,995評(píng)論 3 338
  • 正文 我和宋清朗相戀三年暮顺,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了厅篓。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 40,137評(píng)論 1 351
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡捶码,死狀恐怖羽氮,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情惫恼,我是刑警寧澤档押,帶...
    沈念sama閱讀 35,819評(píng)論 5 346
  • 正文 年R本政府宣布,位于F島的核電站祈纯,受9級(jí)特大地震影響令宿,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜腕窥,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,482評(píng)論 3 331
  • 文/蒙蒙 一粒没、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧簇爆,春花似錦癞松、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,023評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至安寺,卻和暖如春厕妖,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背挑庶。 一陣腳步聲響...
    開封第一講書人閱讀 33,149評(píng)論 1 272
  • 我被黑心中介騙來泰國打工言秸, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人迎捺。 一個(gè)月前我還...
    沈念sama閱讀 48,409評(píng)論 3 373
  • 正文 我出身青樓举畸,卻偏偏與公主長得像,于是被迫代替她去往敵國和親凳枝。 傳聞我的和親對(duì)象是個(gè)殘疾皇子抄沮,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,086評(píng)論 2 355

推薦閱讀更多精彩內(nèi)容

  • 作者:米粒 貓咪出便便,寶貝來除它岖瑰。 爸爸幫撐袋叛买,媽媽趕緊躲。
    David_Xian閱讀 558評(píng)論 1 5
  • 平瑞青 堅(jiān) 持 分享 第573天(2019.3.23)周六 我媽今天下午趁我做飯的時(shí)候沒吭聲蹋订,就自己出走啦率挣。...
    平凡也好閱讀 303評(píng)論 1 2
  • 當(dāng)下有個(gè)很流行的網(wǎng)絡(luò)詞“走心”。 說是啥呢露戒?做事不能只浮于表面椒功,除了用力還要用心捶箱,走心,才能把事做的徹底动漾、明白丁屎,才...
    _海之藍(lán)_閱讀 193評(píng)論 0 0
  • 能夠使我們漂浮與人生的泥沼中而不致陷污的,是我們的信心谦炬≡闷粒——但丁 01 總有個(gè)別情感微信公眾號(hào)運(yùn)營者,喜歡推送“要...
    洪生鵬閱讀 642評(píng)論 0 16