iOS8新特性IBDesignable的使用

在OC和Swift中使用IBDesignable/IBInspectable

iOS8新特性IBDesignable/IBInspectable午乓,可以直接在XIB或者Storyboard中直接,設(shè)置UI類的屬性烛芬。

例如:UIView.layer.borderWidth家凯、borderColor累澡、cornerRadius這些屬性在XIB上是不能直接設(shè)置的,但是IBDesignable/IBInspectable额嘿,利用運(yùn)行時機(jī)制瘸恼,就可以把這些屬性映射到XIB上了,同時我們UI類的自定義屬性也可以映射上去册养。關(guān)于過多的解釋我就不多說了可以看看Nate Cook撰寫的东帅。

以UIView的子類為例:

Swift IBDesignable/IBInspectable

首先我們得建一個ViewSwift類,View繼承自UIView球拦,選擇Swift語言靠闭。

@IBDesignable

class View: UIView {

? ? ? ? ? @IBInspectable var cornerRadius: CGFloat = 0.0 {

? ? ? ? ? ? ? ? ? didSet {

? ? ? ? ? ? ? ? ? ? ? ? ? ? layer.cornerRadius = cornerRadius

? ? ? ? ? ? ? ? ? ? ? ? ? ? layer.masksToBounds = true

? ? ? ? ? ? ? ? }

? ? ? ? ?}?

? ? ? ?@IBInspectable var borderColor: UIColor = UIColor() {

? ? ? ? ? ? ? ?didSet {

? ? ? ? ? ? ? ? ? ? ? layer.borderColor = borderColor.CGColor

? ? ? ? ? ? ? ?}

? ? ?}

? ? ? @IBInspectable var borderWidth: CGFloat = 0.0 {

? ? ? ? ? ? ? ? didSet {

? ? ? ? ? ? ? ? ? ? ?layer.borderWidth = borderWidth

? ? ? ? ? ? ? ? }

? ? ? }?

}

然后在XIB或Storyboard里面,拖一個UIView上去坎炼,把class改成自己定義的View

然后點(diǎn)擊旁邊的屬性編輯愧膀,就可以看到我們動態(tài)加載上去的屬性,直接修改就可以了谣光,XIB上的View也會跟隨變化扇调。


我們就可以看到一個UIView的子類變成了這樣

Objective-C IBDesignable/IBInspectable


建一個ViewOC類,ViewOC繼承自UIView抢肛,選擇Objective-C語言狼钮,在.h里面聲明屬性

@property (nonatomic, assign)IBInspectable CGFloat cornerRadius;

@property (nonatomic, assign)IBInspectable CGFloat bwidth;

@property (nonatomic, assign)IBInspectable UIColor *bcolor;

注意:IBInspectable修飾的位置。

然后再.m文件里面捡絮,@implementation前面用IB_DESIGNABLE修飾熬芜。

IB_DESIGNABLE

@implementation ViewOC

然后再set方法里面去賦值就OK了,如下:

- (void)setCornerRadius:(CGFloat)cornerRadius{

? ? ? ? ? ?_cornerRadius = cornerRadius;

? ? ? ? ? ?self.layer.cornerRadius? = _cornerRadius;

? ? ? ? ? ?self.layer.masksToBounds = YES;

}

- (void)setBcolor:(UIColor *)bcolor{

? ? ? ? ? _bcolor = bcolor;

? ? ? ? ? self.layer.borderColor = _bcolor.CGColor;

}

- (void)setBwidth:(CGFloat)bwidth {

? ? ? ?_bwidth = bwidth;

? ? ? ?self.layer.borderWidth = _bwidth;

}

效果跟上面Swift是一樣的福稳,如果有疑問和建議涎拉,歡迎指導(dǎo)和提問。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末的圆,一起剝皮案震驚了整個濱河市鼓拧,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌越妈,老刑警劉巖季俩,帶你破解...
    沈念sama閱讀 206,378評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異梅掠,居然都是意外死亡酌住,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,356評論 2 382
  • 文/潘曉璐 我一進(jìn)店門阎抒,熙熙樓的掌柜王于貴愁眉苦臉地迎上來酪我,“玉大人,你說我怎么就攤上這事且叁《伎蓿” “怎么了?”我有些...
    開封第一講書人閱讀 152,702評論 0 342
  • 文/不壞的土叔 我叫張陵,是天一觀的道長欺矫。 經(jīng)常有香客問我稠歉,道長,這世上最難降的妖魔是什么汇陆? 我笑而不...
    開封第一講書人閱讀 55,259評論 1 279
  • 正文 為了忘掉前任,我火速辦了婚禮带饱,結(jié)果婚禮上毡代,老公的妹妹穿的比我還像新娘。我一直安慰自己勺疼,他們只是感情好教寂,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,263評論 5 371
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著执庐,像睡著了一般酪耕。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上轨淌,一...
    開封第一講書人閱讀 49,036評論 1 285
  • 那天迂烁,我揣著相機(jī)與錄音,去河邊找鬼递鹉。 笑死盟步,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的躏结。 我是一名探鬼主播却盘,決...
    沈念sama閱讀 38,349評論 3 400
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼媳拴!你這毒婦竟也來了黄橘?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 36,979評論 0 259
  • 序言:老撾萬榮一對情侶失蹤屈溉,失蹤者是張志新(化名)和其女友劉穎塞关,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體子巾,經(jīng)...
    沈念sama閱讀 43,469評論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡描孟,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 35,938評論 2 323
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了砰左。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片匿醒。...
    茶點(diǎn)故事閱讀 38,059評論 1 333
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖缠导,靈堂內(nèi)的尸體忽然破棺而出廉羔,到底是詐尸還是另有隱情,我是刑警寧澤僻造,帶...
    沈念sama閱讀 33,703評論 4 323
  • 正文 年R本政府宣布憋他,位于F島的核電站孩饼,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏竹挡。R本人自食惡果不足惜镀娶,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,257評論 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望揪罕。 院中可真熱鬧梯码,春花似錦、人聲如沸好啰。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,262評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽框往。三九已至鳄抒,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間椰弊,已是汗流浹背许溅。 一陣腳步聲響...
    開封第一講書人閱讀 31,485評論 1 262
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留秉版,地道東北人闹司。 一個月前我還...
    沈念sama閱讀 45,501評論 2 354
  • 正文 我出身青樓,卻偏偏與公主長得像沐飘,于是被迫代替她去往敵國和親游桩。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,792評論 2 345

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

  • 在iOS中隨處都可以看到絢麗的動畫效果耐朴,實(shí)現(xiàn)這些動畫的過程并不復(fù)雜借卧,今天將帶大家一窺ios動畫全貌。在這里你可以看...
    每天刷兩次牙閱讀 8,465評論 6 30
  • 在iOS中隨處都可以看到絢麗的動畫效果筛峭,實(shí)現(xiàn)這些動畫的過程并不復(fù)雜铐刘,今天將帶大家一窺iOS動畫全貌。在這里你可以看...
    F麥子閱讀 5,094評論 5 13
  • 參考:appcode網(wǎng)站的書《Intermediate iOS Programming with Swift》 的...
    Andy_Ron閱讀 1,837評論 9 22
  • 最近無意中知道了IBInspectable和IB_DESIGNABLE,感覺如果在項(xiàng)目中使用會給我們程序員...
    真巧了_嘿閱讀 2,319評論 0 0
  • 轉(zhuǎn)載:http://www.reibang.com/p/32fcadd12108 每個UIView有一個伙伴稱為l...
    F麥子閱讀 6,157評論 0 13