Hello,经过Android程序员 如何入门iOS ——故事从这里开始 做为一个Androider 去看iOS程序的目录结构应该算有个大概的理解了,接下去咱们小小介绍下和咱们交道打的最多的UIViewController
。程序员
Android 开发者们不会对activity
有陌生的感受吧?那么这里的UIViewController
就能够理解成Android
中的activity
,UIViewController
有一个不一样的地方, 就是它和某一个view
是强耦合的,在逻辑上,一个UIViewController
必然带一个view
(其实不带view
的activity
好像也没什么价值= =)。segmentfault
咱们这里须要清楚明白一点的是,iOS
不像Android
,带了一个layout system
,它在不采用autolayout
的状况下并不会自动布局,Android
的一个ViewGroup
的生命周期经历3个阶段,分别是app
measureide
layout布局
draw性能
Android
在大部分状况下,ViewGroup
都会自动的为它的子view
撑开足够的空间,用以正确显示View
。这么智能的作法是在measure
和layout
中完成的。学习
iOS
的绘图性能一直完爆Android
的其中一个缘由就是由于它简单的布局系统不会由于布局的复杂性加强而增长计算量。code
若是不采用autolayout
,那么在iOS
中,全部的View
有个初始化方法叫作initWithFrame:
传入一个CGRect
矩形对象,矩形定义了 (x
,y
,width
,height
),这四元 不就是咱们帮系统完成了一次measure
和layout
么? 那么iOS
只用尽管draw
就好了。对象
这里不提Activity LifeCycle
的缘由是,Activity
的LifeCycle
好像和View
一点关系都没有生命周期
onCreate
-onStart
-onResume
-onPause
-onStop
-onDestory
这些和Activity
自己有关,彷佛在哪都找不到View
相关的事件回调,可是在iOS
的UIViewController
中,却有
viewWillAppear
-viewDidAppear
-viewWillDisappear
-viewDidDisappear
好像每个都和View
有关,不愧名字为ViewController
啊~
咱们从Android
迁移到iOS
首先写UIViewController
的时候,一个后遗症就是会去找ViewController
的生命周期,其实不用想太多,由于iOS充分利用了getter
和setter
的便利性,在咱们对UIViewController.view
的访问过程当中,会调用loadView
和viewDidLoad
这2个回调方法,所以,咱们原先在Activity
中, setContentView
以后干的事情,就能够在viewDidLoad
中去作了,至于ViewController
是否显示消失,那么就在其它四个回调中去作咱们想要作的事。
本文咱们简单介绍了UIViewController
和Activity
自身生命周期
的不一样和两个系统布局系统
的不一样,但愿对你们有所帮助,因为我本身也刚刚入门iOS,写的文章可能漏洞较多,欢迎你们补充。
固然学习建议仍是 多看官方文档