UIView關(guān)聯(lián)Xib文件并可用AutoLayout

UIView關(guān)聯(lián)Xib文件并可用AutoLayout

看了很多教程基本都是復(fù)制粘貼,未測(cè)試就發(fā)出來的趁俊,自己測(cè)試了一個(gè)可以用的寫出來

下面的內(nèi)容可以看可以不看,說說看到的幾個(gè)復(fù)制粘貼出來的文章糊探,導(dǎo)致的問題

  • 通過frame的方式挎狸,添加子Viewself上扣汪,無法實(shí)現(xiàn)當(dāng)前xib內(nèi)部subView對(duì)父視圖的自適應(yīng)
  • 通過將當(dāng)前xib里面的最外層view,連接一個(gè)IBOutlet的方式锨匆,也無法實(shí)現(xiàn)自適應(yīng)

運(yùn)行環(huán)境

  • iOS7.0以上

開發(fā)環(huán)境

  • Xcode7.2.1 (7.3是個(gè)大坑逼私痹,不信你試試自動(dòng)補(bǔ)全)

解決辦法

  1. 創(chuàng)建自定義View

    File -> New -> File

    選擇iOS分類下的Source下面的Cocoa Touch Class, 點(diǎn)擊Next

    Class輸入自定義的View的類名例如CustomView, Subclass of 輸入 UIView, 此時(shí)下方的Also create XIB file是灰色的無法勾選 (其余的選項(xiàng)自己看吧), 點(diǎn)擊Next

    勾選下方的Targets 對(duì)應(yīng)到當(dāng)前項(xiàng)目(如果未勾選), Create

  2. 創(chuàng)建Xib文件

    File -> New -> File

    選擇iOS分類下的User Interface下面的View, 點(diǎn)擊Next

    Save As中輸入Xib的名字,跟上面的類名一致, 后綴為xib, 例如CustomView.xib (后綴可以不輸入)

    勾選下方的Targets 對(duì)應(yīng)到當(dāng)前項(xiàng)目(如果未勾選), Create

  3. 關(guān)聯(lián)Xib和CustomView類

進(jìn)入CustomView.xib中, 點(diǎn)擊左側(cè)的 File's Owner 選擇右邊的 Custom Class 輸入 CustomView

  1. 自定義CustomView的初始化方法

CustomView.h

  #import <UIKit/UIKit.h>

  @interface CustomView : UIView

  @end

CustomView.m

  #import "CustomView.h"

  @implementation CustomView
  
  - (instancetype)initWithCoder:(NSCoder *)aDecoder
  {
    if (self = [super initWithCoder:aDecoder]) {
          
      // 先添加View
      UIView *view = [[NSBundle mainBundle] loadNibNamed:NSStringFromClass(self.class) owner:self options:nil].firstObject;
      [self addSubview:view];
              
      // 再添加約束
      view.translatesAutoresizingMaskIntoConstraints = NO;
      self.translatesAutoresizingMaskIntoConstraints = NO;
      [self addConstraint:[NSLayoutConstraint constraintWithItem:view attribute:NSLayoutAttributeLeft relatedBy:NSLayoutRelationEqual toItem:self attribute:NSLayoutAttributeLeft multiplier:1.0 constant:0]];
      [self addConstraint:[NSLayoutConstraint constraintWithItem:view attribute:NSLayoutAttributeRight relatedBy:NSLayoutRelationEqual toItem:self attribute:NSLayoutAttributeRight multiplier:1.0 constant:0]];
      [self addConstraint:[NSLayoutConstraint constraintWithItem:view attribute:NSLayoutAttributeTop relatedBy:NSLayoutRelationEqual toItem:self attribute:NSLayoutAttributeTop multiplier:1.0 constant:0]];
      [self addConstraint:[NSLayoutConstraint constraintWithItem:view attribute:NSLayoutAttributeBottom relatedBy:NSLayoutRelationEqual toItem:self attribute:NSLayoutAttributeBottom multiplier:1.0 constant:0]];
    }
  return self;
}

添加完之后

  1. 進(jìn)入Main.storyboard中添加當(dāng)前自定義的CustomView
  1. 去自定義的Xib中添加幾個(gè)視圖,測(cè)試一波

    上面5中如果在sb中改變上圖的CustomView的背景色紊遵,是不起作用的账千,因?yàn)樵贑ustomView.xib中被覆蓋成默認(rèn)的whiteColor了

  1. OK測(cè)試我們的運(yùn)行結(jié)果

Over 搞定 UIView + XIB + AutoLayout

如果寫的不對(duì)或者有問題的地方,歡迎大家在評(píng)論處指正暗膜,相互交流

最后附上自己寫的Demo MSBaseCustomView

Demo里面的MSBaseCustomView匀奏,可以直接被繼承使用

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市学搜,隨后出現(xiàn)的幾起案子娃善,更是在濱河造成了極大的恐慌,老刑警劉巖瑞佩,帶你破解...
    沈念sama閱讀 212,454評(píng)論 6 493
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件距境,死亡現(xiàn)場(chǎng)離奇詭異证九,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,553評(píng)論 3 385
  • 文/潘曉璐 我一進(jìn)店門后控,熙熙樓的掌柜王于貴愁眉苦臉地迎上來薇芝,“玉大人陶缺,你說我怎么就攤上這事屯烦。” “怎么了首启?”我有些...
    開封第一講書人閱讀 157,921評(píng)論 0 348
  • 文/不壞的土叔 我叫張陵暮屡,是天一觀的道長(zhǎng)。 經(jīng)常有香客問我毅桃,道長(zhǎng)褒纲,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 56,648評(píng)論 1 284
  • 正文 為了忘掉前任钥飞,我火速辦了婚禮莺掠,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘代承。我一直安慰自己,他們只是感情好渐扮,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,770評(píng)論 6 386
  • 文/花漫 我一把揭開白布论悴。 她就那樣靜靜地躺著,像睡著了一般墓律。 火紅的嫁衣襯著肌膚如雪膀估。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,950評(píng)論 1 291
  • 那天耻讽,我揣著相機(jī)與錄音察纯,去河邊找鬼。 笑死,一個(gè)胖子當(dāng)著我的面吹牛饼记,可吹牛的內(nèi)容都是我干的香伴。 我是一名探鬼主播,決...
    沈念sama閱讀 39,090評(píng)論 3 410
  • 文/蒼蘭香墨 我猛地睜開眼具则,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼即纲!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起博肋,我...
    開封第一講書人閱讀 37,817評(píng)論 0 268
  • 序言:老撾萬榮一對(duì)情侶失蹤低斋,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后匪凡,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體膊畴,經(jīng)...
    沈念sama閱讀 44,275評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,592評(píng)論 2 327
  • 正文 我和宋清朗相戀三年病游,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了唇跨。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 38,724評(píng)論 1 341
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡礁遵,死狀恐怖轻绞,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情佣耐,我是刑警寧澤政勃,帶...
    沈念sama閱讀 34,409評(píng)論 4 333
  • 正文 年R本政府宣布,位于F島的核電站兼砖,受9級(jí)特大地震影響奸远,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜讽挟,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 40,052評(píng)論 3 316
  • 文/蒙蒙 一懒叛、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧耽梅,春花似錦薛窥、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,815評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至众旗,卻和暖如春罢杉,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背贡歧。 一陣腳步聲響...
    開封第一講書人閱讀 32,043評(píng)論 1 266
  • 我被黑心中介騙來泰國(guó)打工滩租, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留赋秀,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 46,503評(píng)論 2 361
  • 正文 我出身青樓律想,卻偏偏與公主長(zhǎng)得像猎莲,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子蜘欲,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,627評(píng)論 2 350

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