02- 第一個(gè)iOS程序

Storyboard文件

  • 在iOS5之前培愁,蘋果使用xib文件來(lái)描述UI界面
  • 在iOS5之后获高,蘋果采取了更加強(qiáng)大和先進(jìn)的storyboard文件來(lái)描述界面(Xcode5是基于iOS7的)
  • 左邊的箭頭表明:程序一啟動(dòng)就會(huì)顯示箭頭所指的界面

常見的UI控件

UILabel – 文本標(biāo)簽
  • 文本標(biāo)簽的作用是顯示一串固定的文字
UIButton – 按鈕
  • 按鈕的作用是:監(jiān)聽用戶的點(diǎn)擊事件凉翻,在用戶點(diǎn)擊后做出響應(yīng)
UITextField – 文本輸入框
  • 文本輸入框可以彈出鍵盤嗜傅,讓用戶輸入文本內(nèi)容
  • 這個(gè)設(shè)置表明:UITextField彈出的是數(shù)字鍵盤

View和ViewController

UIView
  • 屏幕上能看得見摸得著的東西就是UIView娜扇,比如屏幕上的按鈕泪勒、文字、圖片
  • 一般翻譯叫做:視圖\控件\組件
  • UIButton棕兼、UILabel陡舅、UITextField都繼承自UIView
  • 每一個(gè)UIView都是一個(gè)容器,能容納其他UIView(比如右圖中的整個(gè)鍵盤是一個(gè)UIView伴挚,里面容納很多小格子的數(shù)字UIView)
父控件和子控件
  • 在“加法計(jì)算器”中靶衍,最后面那塊白色的全屏的東西也是一個(gè)UIView

  • 白色的大UIView中容納了很多小的UIView

    • 在白色的大UIView中,容納了6個(gè)小UIView(1個(gè)UIButton茎芋、2個(gè)UITextField颅眶、3個(gè)UILabel)
    • 這種情況下,我們可以稱白色的大UIView為6個(gè)小UIView的父控件(父視圖)田弥,6個(gè)小UIView都是白色大UIView的子控件(子視圖)
UIViewController
  • 手機(jī)上自帶的“設(shè)置”中有很多的界面涛酗,點(diǎn)擊對(duì)應(yīng)的選項(xiàng)可以跳到下一個(gè)界面
  • 每一個(gè)新的界面都是一個(gè)新的UIView,在切換過程中皱蹦,涉及到了:
    (1)UIView的創(chuàng)建和銷毀
    (2)UIView跟用戶的交互(處理UIView內(nèi)部每一行的點(diǎn)擊)

  • 其實(shí)煤杀,每當(dāng)顯示一個(gè)新界面時(shí),首先會(huì)創(chuàng)建一個(gè)新的UIViewController對(duì)象沪哺,然后創(chuàng)建一個(gè)對(duì)應(yīng)的全屏UIView沈自,UIViewController負(fù)責(zé)管理這個(gè)UIView

  • UIViewController就是UIView的大管家,負(fù)責(zé)創(chuàng)建辜妓、顯示枯途、銷毀UIView,負(fù)責(zé)監(jiān)聽UIView內(nèi)部的事件籍滴,負(fù)責(zé)處理UIView與用戶的交互

  • UIViewController內(nèi)部有個(gè)UIView屬性酪夷,就是它負(fù)責(zé)管理的UIView對(duì)象 :
    @property(nonatomic,retain) UIView*view;

  • 嚴(yán)格來(lái)講,下圖箭頭所指的應(yīng)該是一個(gè)UIViewController對(duì)象孽惰,里面白色的界面僅僅是UIViewController內(nèi)部的UIView屬性

  • 箭頭所指UIViewController的真實(shí)類型是MJViewController

程序的運(yùn)行流程

  • 綜合分析晚岭,可以得出程序的簡(jiǎn)單運(yùn)行流程:
    1.讀取Main.storyboard文件
    2.創(chuàng)建箭頭所指的MJViewController對(duì)象
    3.根據(jù)storyboard文件中描述創(chuàng)建MJViewController的UIView對(duì)象
    4.將UIView對(duì)象顯示到用戶眼前

監(jiān)聽按鈕點(diǎn)擊

  • 現(xiàn)在已經(jīng)知道:應(yīng)該由ViewController來(lái)監(jiān)聽“計(jì)算”按鈕的點(diǎn)擊
  • 換句話說(shuō),ViewController應(yīng)該提供一個(gè)方法出來(lái)勋功,當(dāng)用戶點(diǎn)擊“計(jì)算”按鈕時(shí)坦报,就調(diào)用這個(gè)方法來(lái)通知ViewController按鈕被人點(diǎn)了
  • ViewController就在這個(gè)方法中實(shí)現(xiàn)想做的任何事情库说,比如計(jì)算2個(gè)文本輸入框內(nèi)值的和

IBAction和IBOutlet

  • IBAction
    • 從返回值角度上看,作用相當(dāng)于void
    • 只有返回值聲明為IBAction的方法片择,才能跟storyboard中的控件進(jìn)行連線
  • IBOutlet
    • 只有聲明為IBOutlet的屬性潜的,才能跟storyboard中的控件進(jìn)行連線

設(shè)置程序啟動(dòng)時(shí)加載的storyboard

  • 這個(gè)設(shè)置表明:程序啟動(dòng)時(shí)會(huì)加載Main.storyboard

退出鍵盤的兩種方式

  • resignFirstResponder
    • 當(dāng)叫出鍵盤的那個(gè)控件(第一響應(yīng)者)調(diào)用這個(gè)方法時(shí),就能退出鍵盤
  • endEditing
    • 只要調(diào)用這個(gè)方法的控件內(nèi)部存在第一響應(yīng)者字管,就能退出鍵盤
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末啰挪,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子嘲叔,更是在濱河造成了極大的恐慌亡呵,老刑警劉巖,帶你破解...
    沈念sama閱讀 212,686評(píng)論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件借跪,死亡現(xiàn)場(chǎng)離奇詭異政己,居然都是意外死亡酌壕,警方通過查閱死者的電腦和手機(jī)掏愁,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,668評(píng)論 3 385
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)卵牍,“玉大人果港,你說(shuō)我怎么就攤上這事『迹” “怎么了辛掠?”我有些...
    開封第一講書人閱讀 158,160評(píng)論 0 348
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)释牺。 經(jīng)常有香客問我萝衩,道長(zhǎng),這世上最難降的妖魔是什么没咙? 我笑而不...
    開封第一講書人閱讀 56,736評(píng)論 1 284
  • 正文 為了忘掉前任猩谊,我火速辦了婚禮,結(jié)果婚禮上祭刚,老公的妹妹穿的比我還像新娘牌捷。我一直安慰自己,他們只是感情好涡驮,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,847評(píng)論 6 386
  • 文/花漫 我一把揭開白布暗甥。 她就那樣靜靜地躺著,像睡著了一般捉捅。 火紅的嫁衣襯著肌膚如雪撤防。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 50,043評(píng)論 1 291
  • 那天棒口,我揣著相機(jī)與錄音寄月,去河邊找鬼焰情。 笑死,一個(gè)胖子當(dāng)著我的面吹牛剥懒,可吹牛的內(nèi)容都是我干的内舟。 我是一名探鬼主播,決...
    沈念sama閱讀 39,129評(píng)論 3 410
  • 文/蒼蘭香墨 我猛地睜開眼初橘,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼验游!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起保檐,我...
    開封第一講書人閱讀 37,872評(píng)論 0 268
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤耕蝉,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后夜只,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體垒在,經(jīng)...
    沈念sama閱讀 44,318評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,645評(píng)論 2 327
  • 正文 我和宋清朗相戀三年扔亥,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了场躯。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 38,777評(píng)論 1 341
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡旅挤,死狀恐怖踢关,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情粘茄,我是刑警寧澤签舞,帶...
    沈念sama閱讀 34,470評(píng)論 4 333
  • 正文 年R本政府宣布,位于F島的核電站柒瓣,受9級(jí)特大地震影響儒搭,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜芙贫,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 40,126評(píng)論 3 317
  • 文/蒙蒙 一搂鲫、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧屹培,春花似錦默穴、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,861評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至媒吗,卻和暖如春仑氛,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,095評(píng)論 1 267
  • 我被黑心中介騙來(lái)泰國(guó)打工锯岖, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留介袜,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 46,589評(píng)論 2 362
  • 正文 我出身青樓出吹,卻偏偏與公主長(zhǎng)得像遇伞,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子捶牢,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,687評(píng)論 2 351

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

  • 發(fā)現(xiàn) 關(guān)注 消息 iOS 第三方庫(kù)鸠珠、插件、知名博客總結(jié) 作者大灰狼的小綿羊哥哥關(guān)注 2017.06.26 09:4...
    肇東周閱讀 12,066評(píng)論 4 62
  • 文/項(xiàng)小北 我們每個(gè)人都生活在各自的過去中秋麸,人們會(huì)用一分鐘時(shí)間去認(rèn)識(shí)一個(gè)人渐排,用一小時(shí)的時(shí)間去喜歡一個(gè)人,再用一天的...
    項(xiàng)小北閱讀 5,154評(píng)論 8 42
  • 想必很多人已經(jīng)離開了家灸蟆,踏上了“歸”途驯耻。 18日 南方的開學(xué)日 北方的返校季 而我作為一個(gè)在北方上學(xué)的南方人 沒有...
    Erny_閱讀 453評(píng)論 2 8