最近因為公司的一些原因,需要涉及iOS開發(fā)。在坑里摸爬滾打了2周之后,就寫個入門心得吧。
在一切的一切開始之前,你要先會Objective-C
或者Swift
(喜歡哪個用哪個,你開心就好)。
然后,要準備一臺OS X
的電腦,并安裝好Xcode
,然后一切就可以開始了。
打開Xcode
,然后新建一個項目,看到的界面是這樣的(其實和Android Studio
的模式很相似啦)
看看幾個項目,你大概也理解了分別要創(chuàng)建怎么樣的應(yīng)用,它提供一個模板,然后可以快速創(chuàng)建出某種結(jié)構(gòu)的程序。大部分情況的應(yīng)用是屬于
Tabbed Application
,也就是帶Tab
的程序。
文件概念遷移
創(chuàng)建好一個應(yīng)用后,我們能看到AppDelegate
,storyboard
,plist
之類的文件。這些分別是啥呢?
我來個簡單干脆的映射,方便理解,但是不精準,如有錯誤,感謝指出
iOS | Android | 備注 |
---|---|---|
Info.plist |
AndroidManifest.xml |
記錄應(yīng)用程序的一些元數(shù)據(jù) |
AppDelegate |
Application |
管理整個Application 的生命周期 |
ViewController |
Activity |
負責(zé)管理View ,管理整個應(yīng)用程序的交互 |
各類storyboard 文件 |
各類xml 文件 |
定義一些布局,一些iOS程序員習(xí)慣在代碼里寫布局,可能用不到storyboard
|
Android
程序始于Application
的onCreate
方法,iOS
始于AppDelegate
的application didFinishLaunchingWithOptions
方法,這里唯一不同的是Android
的launch activity
只能使用AndroidManifest.xml
指定,但是iOS
可以使用代碼去指定。
self.window.rootViewController = xxxx;
從Activity到UIViewController
Android
中的Activity
和View
并沒有強制關(guān)聯(lián),但是iOS
中的UIViewController
默認都帶一個View
,你可以把這個認為是Activity
中Window
的decorView
,是所有View
的父容器。當你生成好一個UIViewController
之后,你往它的成員變量view
中添加你的視圖即可,如果你是從storyboard
中生成的UIViewController
,那你構(gòu)建的View
就會自動添加進來。
Android
一切初始化的地方,我們習(xí)慣在onCreate
中使用setContentView
之后,然后用findViewById
獲取到控件的實例,為控件綁定一些監(jiān)聽器,而iOS
中,我們開始的地方,大部分是UIViewController
的viewDidLoad
方法,我們使用代碼生成我們要的控件,同時為控件綁定事件,或者使用storyboard
的Outlet
系統(tǒng)綁定到我們的類成員變量上,并生成事件監(jiān)聽。
所有故事,都是從這里開始對吧?
接下去要做的事就是根據(jù)用戶和控件的交互,在視圖上做出相應(yīng)的反饋即可。
界面之間的跳轉(zhuǎn)
Android
的跳轉(zhuǎn)使用Intent
從一個Activity
跳轉(zhuǎn)到另外一個Activity
。
而iOS
中,我們在跳轉(zhuǎn)之前,要做的事情就是生成我們的目標UIViewController
,然后使用我們想要的方式跳轉(zhuǎn)。 iOS
為我們提供了幾種模式跳轉(zhuǎn),最常見的有2種,使用navigationController
和pushModal
,大部分的iOS
程序,頂部都有一個導(dǎo)航條,它由一個更高級抽象的NavigationController
進行控制,就和Android
中的Task
概念類似,我們每次pushViewController
,就會在它的棧中壓入一個ViewController
。而pushModal
看名字就知道,是彈出一個模態(tài)框,它的返回操作一般只有關(guān)閉一個按鈕,具體使用哪種方式,需要和產(chǎn)品的概念相呼應(yīng)才行。
UI的相關(guān)介紹就到這,接下去有時間,我們談?wù)?code>Android中的Handler
在iOS
中以什么樣的方式存在