開(kāi)發(fā)筆記 - storyboard的一些初級(jí)使用

本來(lái)想寫(xiě)一些高大上的東西,例如運(yùn)行時(shí)機(jī)制,以及關(guān)于上架方面的新的.想了好久,我認(rèn)為自己的水平還處于UI學(xué)徒的汪洋大海中 ,開(kāi)發(fā)張的很多很多問(wèn)題,其實(shí)你只需要一個(gè)谷歌瀏覽器,提問(wèn)的當(dāng)很多都是手到擒來(lái)的.話說(shuō)還是有很多人,學(xué)歷高,開(kāi)發(fā)中的問(wèn)題也多,不善于總結(jié).甚至只需要你百度一下,谷歌搜索就能解決的問(wèn)題,還是拿到群里,各種提問(wèn),苦逼的是,回答的時(shí)候,回答者,除非自己遇見(jiàn)過(guò)的驚天大坑,還是要依賴(lài)谷歌來(lái)回答.算不算是一種諷刺? 好像話又離題了.我認(rèn)為現(xiàn)在如果是初級(jí)程序員,完全不是面向?qū)ο缶幊?而是面向搜索引擎編程,只要get搜索的能力,那么%99.9999 的需求以及功能都是可以解決的.

為熟而已!

扯了這么多,還是拿一點(diǎn)最初級(jí)的知識(shí).獻(xiàn)給大家吧. 一來(lái)學(xué)習(xí)是為了分享,分享的同時(shí)也是提升,輸出.現(xiàn)在已經(jīng)不喜歡去copy一些技術(shù)文來(lái)糊弄讀者,一是對(duì)自己的不尊重,而是對(duì)原創(chuàng)作者尊重.這些我是頓時(shí)領(lǐng)悟到的.只有自己寫(xiě),自己輸出才是自己的.不怕寫(xiě)的不好,寫(xiě)的好了自然就有人看,寫(xiě)的不好,給自己看~~~

一般人用布局兩種StoreBoard跟純代碼.那種優(yōu)劣?

玩不轉(zhuǎn)StoreBoard的都喜歡用純代碼.不解釋.

(1)StoreBoard優(yōu)點(diǎn):

Auto Layout川背,做適配很方便畜伐;

多語(yǔ)言很方便夹抗;

靜態(tài)TableView,CollectionView極其方便桨仿;

最重要的是直觀,結(jié)構(gòu)清晰,一目了然菠隆!

沖突問(wèn)題:storyboard一般只是用于展示頁(yè)面布局氏淑,布局不是個(gè)經(jīng)常變動(dòng)的東西勃蜘,如果需要修改,修改的次數(shù)也非常的少假残。一般在團(tuán)隊(duì)中專(zhuān)門(mén)約定幾名負(fù)責(zé)人專(zhuān)門(mén)修改頁(yè)面布局就可以了缭贡。如果真的需要很多人改,請(qǐng)拆分storyboard辉懒。

性能問(wèn)題:性能的瓶頸真的在這里嗎阳惹?有這些時(shí)間多多優(yōu)化一下代碼,多使用異步block的效果更為明顯吧眶俩。

大型項(xiàng)目的問(wèn)題:大型項(xiàng)目中細(xì)分storyboard不僅可以解決打開(kāi)卡頓的問(wèn)題莹汤,也會(huì)使產(chǎn)品線更為直觀。

復(fù)用問(wèn)題:storyboad的確不能復(fù)用颠印,可復(fù)用的組件可以用NIB進(jìn)行封裝纲岭,然后引入storyboad抹竹。

(3)什么時(shí)候使用storyboard?

組織多種view的層級(jí)關(guān)系荒勇,也就是傳說(shuō)中的segue柒莉。使用一些列表或表格單元的模板的時(shí)候。能使用storyboard的情況下盡量用storyboard沽翔。

什么時(shí)候不建議使用storyboard兢孝?

動(dòng)態(tài)或復(fù)雜布局,這時(shí)候可能需要用代碼來(lái)計(jì)算相關(guān)view的位置仅偎。如果一個(gè)view已經(jīng)用NIB或代碼實(shí)現(xiàn)

(4)什么時(shí)候使用nib跨蟹?

模態(tài)框(如登錄提示什么的)可復(fù)用視圖組件或模板

什么時(shí)候不推薦使用nib?

有動(dòng)態(tài)內(nèi)容的視圖

不方便在IB中進(jìn)行設(shè)計(jì)的試圖

(5)什么時(shí)候使用代碼橘沥?

純代碼好處就是靈活窗轩,接手項(xiàng)目的時(shí)候好改。缺點(diǎn)座咆,很明顯慢痢艺。

什么時(shí)候不推薦使用代碼?

什么時(shí)候使用代碼都是一個(gè)好方法介陶,但不一定是最好的堤舒。

純代碼可以使用masonry,可視化編程使用AutoLayout?

我自己的項(xiàng)目可以說(shuō)是所有界面均有SB和XIB 組合而成.很多人說(shuō)storyboard的跟XIB不好,實(shí)際是因?yàn)橥娴牟粔蛄锒?/p>

下面我來(lái)介紹一下storyboard 的幾個(gè)常用的用法


上面這張圖就是傳說(shuō)中的連線 ,segue 簡(jiǎn)稱(chēng)色鬼 你可以用它來(lái)傳值,也可以用它來(lái)跳轉(zhuǎn)控制器

- (IBAction)goAction:(id)sender

{

// 根據(jù)指定線的ID跳轉(zhuǎn)到目標(biāo)Vc

[self performSegueWithIdentifier:@"SendValue" sender:self];

}

- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender {

// segue.identifier:獲取連線的ID

if ([segue.identifier isEqualToString:@"SendValue"]) {

// segue.destinationViewController:獲取連線時(shí)所指的界面(VC)

ReceiveViewController *receive = segue.destinationViewController;

receive.name = @"Garvey";

receive.age = 110;

// 這里不需要指定跳轉(zhuǎn)了,因?yàn)樵诎磁さ氖录镆呀?jīng)有跳轉(zhuǎn)的代碼

// [self.navigationController pushViewController:receive animated:YES];

}

}


除此之外你還可以這樣用


你可能不知道上面的圖有什么卵用?


再來(lái)看一下方法內(nèi)部的實(shí)現(xiàn)

你看誰(shuí)說(shuō)SB不好跳轉(zhuǎn)控制器啥的.寫(xiě)個(gè)方法放在基類(lèi),只要保持規(guī)范,隨便你跳跳跳!

在看下SB做布局



在這里,你可以直接給控件做布局, top left button right 上左下右

寬,高,自身比例


水平,垂直居中.看英文跟符號(hào)你就能知道意思了.


在這里你可以做相對(duì)布局了.

一般,我的做法是直接 父控件 做等寬高?

然后MultiPlier 不是有一個(gè)1 嗎?

這里就是你可以調(diào)整比例 從0 -1 ??

至于怎么算比例,例如 我想做一個(gè)view 大小100 并且在任何6顯示正常 在5s 跟6S 相對(duì)根據(jù)比例來(lái)增大怎么做呢?

如果你直接寫(xiě)死寬度 100 跟高度100?

那么恭喜你,在6是正常的.在5S就會(huì)看起來(lái)大了一點(diǎn),因?yàn)闄C(jī)型跟分辨率高了.在6S就更小了.

是不是有這種情況.那么我用SB怎么做呢?先看分辨率機(jī)型圖

iphone5屏幕尺寸320 x 568屏幕分辨率640x1136

iphone6屏幕尺寸375 x 667屏幕分辨率640x1334

iphone6Plus屏幕尺寸414 x 736屏幕分辨率1080x1920哺呜。




設(shè)置的寬度跟高度,都是跟View去做的等寬高.

我是以6的原型去參照. 那么它就會(huì)去算比例,在6s的時(shí)候, 高度就會(huì)變成屏幕高度 * (100/667.0)

寬度就會(huì)變成 屏幕寬度*(100/375)

你看這樣他就會(huì)根據(jù)機(jī)型來(lái)覺(jué)得view的寬高,從而顯示不同的寬高.是不是很靈活呢?


這個(gè)選項(xiàng),決定了會(huì)不會(huì)參與編譯.如果你不勾選,那么就不會(huì)參與編譯.


簡(jiǎn)單點(diǎn)說(shuō)就是automaticallyAdjustsScrollViewInsets根據(jù)按所在界面的status bar舌缤,navigationbar,與tabbar的高度某残,自動(dòng)調(diào)整scrollview的 inset,設(shè)置為no国撵,不讓viewController調(diào)整,我們自己修改布局即可~

下面我還要花20000+ 的文字來(lái)描述SB 的好用之處.自己腦補(bǔ)去吧,任何技能你想要get記住,只能多谷歌,不要去百度.自己多去練習(xí),真的想別人免費(fèi)給你寫(xiě)文章文字來(lái)告訴你技能?只能告訴你想多了,哈哈哈.一切再好的文章不如親手實(shí)操幾遍來(lái)的快.

最后編輯于
?著作權(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)離奇詭異赏酥,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī)谆构,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,553評(píng)論 3 385
  • 文/潘曉璐 我一進(jìn)店門(mén)裸扶,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人搬素,你說(shuō)我怎么就攤上這事呵晨∥罕#” “怎么了?”我有些...
    開(kāi)封第一講書(shū)人閱讀 157,921評(píng)論 0 348
  • 文/不壞的土叔 我叫張陵摸屠,是天一觀的道長(zhǎng)谓罗。 經(jīng)常有香客問(wèn)我,道長(zhǎng)季二,這世上最難降的妖魔是什么檩咱? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 56,648評(píng)論 1 284
  • 正文 為了忘掉前任,我火速辦了婚禮胯舷,結(jié)果婚禮上刻蚯,老公的妹妹穿的比我還像新娘。我一直安慰自己桑嘶,他們只是感情好炊汹,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,770評(píng)論 6 386
  • 文/花漫 我一把揭開(kāi)白布。 她就那樣靜靜地躺著逃顶,像睡著了一般讨便。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上以政,一...
    開(kāi)封第一講書(shū)人閱讀 49,950評(píng)論 1 291
  • 那天霸褒,我揣著相機(jī)與錄音,去河邊找鬼妙蔗。 笑死傲霸,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的眉反。 我是一名探鬼主播昙啄,決...
    沈念sama閱讀 39,090評(píng)論 3 410
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼寸五!你這毒婦竟也來(lái)了梳凛?” 一聲冷哼從身側(cè)響起,我...
    開(kāi)封第一講書(shū)人閱讀 37,817評(píng)論 0 268
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤梳杏,失蹤者是張志新(化名)和其女友劉穎韧拒,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇?shù)林里發(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
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望败晴。 院中可真熱鬧浓冒,春花似錦、人聲如沸尖坤。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 30,815評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)慢味。三九已至场梆,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間纯路,已是汗流浹背或油。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 32,043評(píng)論 1 266
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(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)容

  • 寫(xiě)在前面 我不算是個(gè)資深碼農(nóng)搓逾,有些iOS的編程經(jīng)驗(yàn)卷谈。希望找到一種高效的方式來(lái)創(chuàng)作出自己的iOS應(yīng)用。大家都知道純代...
    五九樓閱讀 14,317評(píng)論 3 40
  • 1.自定義控件 a.繼承某個(gè)控件 b.重寫(xiě)initWithFrame方法可以設(shè)置一些它的屬性 c.在layouts...
    圍繞的城閱讀 3,371評(píng)論 2 4
  • 英文:raywenderlich譯文:伯樂(lè)在線專(zhuān)欄作者 - 陸熠十四 翻譯鏈接:http://ios.jobbol...
    飛天豬Pony閱讀 366評(píng)論 0 2
  • 前言 做iOS開(kāi)發(fā)的童鞋都應(yīng)該會(huì)糾結(jié)一個(gè)問(wèn)題霞篡,那就是在做開(kāi)發(fā)的時(shí)候是使用StoryBoard還是使用Nibs又或者...
    Arthury閱讀 758評(píng)論 1 3
  • 曲水繞林霜路寧世蔗,秋風(fēng)盡處謁先生。 憑欄長(zhǎng)望樓臺(tái)雨朗兵,持卷未聞金玉聲污淋。 畫(huà)角清悠歌舊歲,鐘山蒼莽守高塋余掖。 百年傲骨今安...
    銓齋閱讀 1,904評(píng)論 8 33