最近因为公司的一些原因,需要涉及iOS开发。在坑里摸爬滚打了2周之后,就写个入门心得吧。
在一切的一切开始之前,你要先会Objective-C
或者Swift
(喜欢哪个用哪个,你开心就好)。
然后,要准备一台OS X
的电脑,并安装好Xcode
,然后一切就可以开始了。
打开Xcode
,然后新建一个项目,看到的界面是这样的(其实和Android Studio
的模式很相似啦)
看看几个项目,你大概也理解了分别要创建怎么样的应用,它提供一个模板,然后可以快速创建出某种结构的程序。大部分情况的应用是属于Tabbed Application
,也就是带Tab
的程序。
文件概念迁移
创建好一个应用后,我们能看到AppDelegate
,storyboard
,plist
之类的文件。这些分别是啥呢?
我来个简单干脆的映射,方便理解,但是不精准,如有错误,感谢指出
iOS | Android | 备注 |
---|---|---|
Info.plist |
AndroidManifest.xml |
记录应用程序的一些元数据 |
AppDelegate |
Application |
管理整个Application 的生命周期 |
ViewController |
Activity |
负责管理View ,管理整个应用程序的交互 |
各类storyboard 文件 |
各类xml 文件 |
定义一些布局,一些iOS程序员习惯在代码里写布局,可能用不到storyboard
|
Android
程序始于Application
的onCreate
方法,iOS
始于AppDelegate
的application didFinishLaunchingWithOptions
方法,这里唯一不同的是Android
的launch activity
只能使用AndroidManifest.xml
指定,但是iOS
可以使用代码去指定。
self.window.rootViewController = xxxx;
从Activity到UIViewController
Android
中的Activity
和View
并没有强制关联,但是iOS
中的UIViewController
默认都带一个View
,你可以把这个认为是Activity
中Window
的decorView
,是所有View
的父容器。当你生成好一个UIViewController
之后,你往它的成员变量view
中添加你的视图即可,如果你是从storyboard
中生成的UIViewController
,那你构建的View
就会自动添加进来。
Android
一切初始化的地方,我们习惯在onCreate
中使用setContentView
之后,然后用findViewById
获取到控件的实例,为控件绑定一些监听器,而iOS
中,我们开始的地方,大部分是UIViewController
的viewDidLoad
方法,我们使用代码生成我们要的控件,同时为控件绑定事件,或者使用storyboard
的Outlet
系统绑定到我们的类成员变量上,并生成事件监听。
所有故事,都是从这里开始对吧?
接下去要做的事就是根据用户和控件的交互,在视图上做出相应的反馈即可。
界面之间的跳转
Android
的跳转使用Intent
从一个Activity
跳转到另外一个Activity
。
而iOS
中,我们在跳转之前,要做的事情就是生成我们的目标UIViewController
,然后使用我们想要的方式跳转。 iOS
为我们提供了几种模式跳转,最常见的有2种,使用navigationController
和pushModal
,大部分的iOS
程序,顶部都有一个导航条,它由一个更高级抽象的NavigationController
进行控制,就和Android
中的Task
概念类似,我们每次pushViewController
,就会在它的栈中压入一个ViewController
。而pushModal
看名字就知道,是弹出一个模态框,它的返回操作一般只有关闭一个按钮,具体使用哪种方式,需要和产品的概念相呼应才行。
UI的相关介绍就到这,接下去有时间,我们谈谈Android
中的Handler
在iOS
中以什么样的方式存在
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。