xib完美適配所有機(jī)型,解決你多年的心惭罟铡祈餐!

從接觸ios開始,我就是忠實(shí)的可視化開發(fā)的搬運(yùn)工——俗稱UI拖拽師哄陶!
本編主要送給那些年熱愛xib帆阳,喜歡效率的ios程序猿們。它可能解決你多年的心参荻帧蜒谤!一直揮散不去的禁錮于代碼的約束山宾,一群技術(shù)大牛此時(shí)應(yīng)該會(huì)鄙視,但我樂此不疲芭逝。
正題開始:此篇文章的主要內(nèi)容是利用運(yùn)行時(shí)和xib的機(jī)制塌碌,用少許的代碼適配所有機(jī)型。簡單粗暴而不失優(yōu)雅旬盯!用了我這套方法你只要在375的xib里面隨心所欲的約束台妆,然后就可以適配劉海屏,plus屏胖翰,se屏等等接剩。

  • 首先我要引入一個(gè)關(guān)鍵字IBDesignable(此處應(yīng)該有些掌聲)
    這個(gè)神奇的關(guān)鍵字IBDesignable的效果就是給xib的右邊欄加一個(gè)屬性列表,然后你可以通過屬性列表將其賦值以達(dá)到針對(duì)不同機(jī)型來適配屏幕萨咳。


    image.png
  • 上圖清晰的說明操作
    1.建一個(gè)NSLayoutConstraint類別懊缺,給他加屬性。
    請(qǐng)注意給類別加屬性需要用到運(yùn)行時(shí)來實(shí)現(xiàn)培他。原理不就細(xì)說了鹃两,自己找度娘。繼續(xù)上圖


    image.png

注意宏的定義是這個(gè)方法的關(guān)鍵舀凛,通過當(dāng)前屏幕的尺寸和375的尺寸做對(duì)比俊扳。


image.png

做完這個(gè)功夫后,就差最后一步達(dá)到效果就是去開啟這個(gè)效果猛遍!


image.png
image.png

選中一個(gè)縱向的約束 然后對(duì)應(yīng)的去打開馋记,由于我的命名太長被...代替了,他的順序是和h文件命名的順序一樣懊烤,第一個(gè)是W橫向的梯醒,第二個(gè)是H縱向的。所以我們打開縱向的腌紧。IBDesignable的關(guān)鍵詞就起了作用茸习,屬性添加的是Bool值所有選的時(shí)候會(huì)出現(xiàn)ON和OFF。
通過這個(gè)操作壁肋,就可以隨意操作xib了逮光。然后布局完成后對(duì)應(yīng)把所有的縱向和橫向的依次設(shè)置一下開關(guān),他就會(huì)隨著屏幕的尺寸而放大和縮小墩划。

  • 很多朋友又要說:你這個(gè)值適配了約束涕刚,字體又不會(huì)變。那這個(gè)又怎么實(shí)現(xiàn)呢乙帮。來吧杜漠。第二步來了,干字體。
    字體怎么加呢驾茴。其實(shí)也很簡單盼樟!用運(yùn)行時(shí),根據(jù)xib的加載機(jī)制锈至。在他加載的某個(gè)階段把當(dāng)下的字體取出來晨缴,然后根據(jù)相應(yīng)的機(jī)型去設(shè)置字體大小就行了。來來來上圖


    image.png

建立一個(gè)uilabel的類別峡捡,h文件不用動(dòng)击碗。m文件如圖所示。
通過load方法加載的時(shí)候们拙,講initWithCoder:方法的實(shí)現(xiàn)和自定義的adapterInitWithCoder:的實(shí)現(xiàn)交換稍途。這樣xib加載到initWithCoder:的時(shí)候就會(huì)實(shí)現(xiàn)自定義的那個(gè)方法。取出當(dāng)前的字體大小砚婆,plus屏幕字體就+1(舉例說明可以微調(diào)加0.5)械拍,se屏幕字體就-2。是不是很簡單装盯。那你說怎么調(diào)用呢坷虑,其實(shí)你既然創(chuàng)建了這個(gè)類別就會(huì)走這個(gè)方法,在xib中已經(jīng)實(shí)現(xiàn)了埂奈。是不是很神奇迄损!至于其他空間只要有字體的,都可以用這種方法去實(shí)現(xiàn)挥转,這就不一一舉例了。我平時(shí)直接拉進(jìn)項(xiàng)目如圖所示


image.png

有了以上兩個(gè)方法共屈,就實(shí)現(xiàn)了約束的比例縮放以及字體大小的縮放绑谣。xib在375的標(biāo)準(zhǔn)下狂奔吧!ios的開發(fā)者們拗引,run借宵!有什么好的建議可以留言哦,歡迎ios的朋友們相互學(xué)習(xí)矾削。需要Demo記得留下郵箱壤玫,我給你發(fā)Demo。
已經(jīng)多方實(shí)驗(yàn)得出哼凯,高度適配欲间,以及字體適配的必要性有待考證。個(gè)人覺得寬度適配做好就基本滿足了需求断部。高度適配等比例放大和縮小無規(guī)律的屏幕是個(gè)麻煩事猎贴,由于劉海屏的存在。故作者建議大家只做寬度適配就好(字體放大縮小也是卵的,因?yàn)榇笃聊坏淖煮w放大顯得沒有那么精致她渴,也沒有放大的必要)达址,切記切記。這是作者踩坑歸來的良苦玉言趁耗!

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末沉唠,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子苛败,更是在濱河造成了極大的恐慌满葛,老刑警劉巖,帶你破解...
    沈念sama閱讀 206,214評(píng)論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件著拭,死亡現(xiàn)場離奇詭異纱扭,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)儡遮,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,307評(píng)論 2 382
  • 文/潘曉璐 我一進(jìn)店門乳蛾,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人鄙币,你說我怎么就攤上這事肃叶。” “怎么了十嘿?”我有些...
    開封第一講書人閱讀 152,543評(píng)論 0 341
  • 文/不壞的土叔 我叫張陵因惭,是天一觀的道長。 經(jīng)常有香客問我绩衷,道長蹦魔,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 55,221評(píng)論 1 279
  • 正文 為了忘掉前任咳燕,我火速辦了婚禮勿决,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘招盲。我一直安慰自己低缩,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,224評(píng)論 5 371
  • 文/花漫 我一把揭開白布曹货。 她就那樣靜靜地躺著咆繁,像睡著了一般。 火紅的嫁衣襯著肌膚如雪顶籽。 梳的紋絲不亂的頭發(fā)上玩般,一...
    開封第一講書人閱讀 49,007評(píng)論 1 284
  • 那天,我揣著相機(jī)與錄音礼饱,去河邊找鬼壤短。 笑死设拟,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的久脯。 我是一名探鬼主播纳胧,決...
    沈念sama閱讀 38,313評(píng)論 3 399
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼帘撰!你這毒婦竟也來了跑慕?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 36,956評(píng)論 0 259
  • 序言:老撾萬榮一對(duì)情侶失蹤摧找,失蹤者是張志新(化名)和其女友劉穎核行,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體蹬耘,經(jīng)...
    沈念sama閱讀 43,441評(píng)論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡芝雪,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 35,925評(píng)論 2 323
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了综苔。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片惩系。...
    茶點(diǎn)故事閱讀 38,018評(píng)論 1 333
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖如筛,靈堂內(nèi)的尸體忽然破棺而出堡牡,到底是詐尸還是另有隱情,我是刑警寧澤杨刨,帶...
    沈念sama閱讀 33,685評(píng)論 4 322
  • 正文 年R本政府宣布晤柄,位于F島的核電站,受9級(jí)特大地震影響妖胀,放射性物質(zhì)發(fā)生泄漏芥颈。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,234評(píng)論 3 307
  • 文/蒙蒙 一赚抡、第九天 我趴在偏房一處隱蔽的房頂上張望爬坑。 院中可真熱鬧,春花似錦怕品、人聲如沸妇垢。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,240評(píng)論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至灼舍,卻和暖如春吼和,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背骑素。 一陣腳步聲響...
    開封第一講書人閱讀 31,464評(píng)論 1 261
  • 我被黑心中介騙來泰國打工炫乓, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 45,467評(píng)論 2 352
  • 正文 我出身青樓末捣,卻偏偏與公主長得像侠姑,于是被迫代替她去往敵國和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子箩做,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,762評(píng)論 2 345

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

  • 1莽红、通過CocoaPods安裝項(xiàng)目名稱項(xiàng)目信息 AFNetworking網(wǎng)絡(luò)請(qǐng)求組件 FMDB本地?cái)?shù)據(jù)庫組件 SD...
    陽明先生_x閱讀 15,968評(píng)論 3 119
  • 六點(diǎn)起床,讀書40分鐘邦邦,洗漱安吁,做飯,九點(diǎn)半到十一點(diǎn)半燃辖,瑜伽一小時(shí)鬼店,跑步,器械一小時(shí)黔龟。中午吃自己帶的便當(dāng)一點(diǎn)半到六點(diǎn)...
    Anna7090閱讀 176評(píng)論 0 0
  • 這個(gè)主題也很特別――早上起床妇智,窗內(nèi)的第一眼光。 最后用抓拍了小寶的這張照片交作業(yè)了捌锭,主要是我終于抓拍到眼神光了俘陷,很...
    蓓蓓感悟生命閱讀 284評(píng)論 0 1
  • 這部電影是張藝謀1992年拍的豁状,我小時(shí)候已經(jīng)有所耳聞捉偏,城鄉(xiāng)大熒幕常常可見泻红,看它是為了對(duì)比《我不是潘金蓮》夭禽。 這部電...
    柚子的學(xué)長閱讀 660評(píng)論 8 1