资讯专栏INFORMATION COLUMN

Android 程序员学习 iOS ——UIViewController 和 Layout Sys

lei___ / 3388人阅读

摘要:的绘图性能一直完爆的其中一个原因就是因为它简单的布局系统不会因为布局的复杂性增强而增加计算量。当然学习建议还是多看官方文档

回顾

Hello,通过Android程序员 如何入门iOS ——故事从这里开始 作为一个Androider 去看iOS程序的目录结构应该算有个大概的理解了,接下去我们小小介绍下和我们交道打的最多的UIViewController

什么是ViewController

Android 开发者们不会对activity有陌生的感觉吧?那么这里的UIViewController就可以理解成Android中的activityUIViewController有一个不同的地方, 就是它和某一个view是强耦合的,在逻辑上,一个UIViewController 必然带一个view(其实不带viewactivity好像也没什么价值= =)。

iOS Layout System 和 Android Layout System

我们这里需要清楚明白一点的是,iOS不像Android,带了一个layout system,它在不采用autolayout的情况下并不会自动布局,Android的一个ViewGroup的生命周期经历3个阶段,分别是

measure

layout

draw

Android在大部分情况下,ViewGroup都会自动的为它的子view撑开足够的空间,用以正确显示View。这么智能的做法是在measurelayout中完成的。

iOS的绘图性能一直完爆Android的其中一个原因就是因为它简单的布局系统不会因为布局的复杂性增强而增加计算量。

如果不采用autolayout,那么在iOS中,所有的View有个初始化方法叫做initWithFrame: 传入一个CGRect矩形对象,矩形定义了 (x,y,width,height),这四元 不就是我们帮系统完成了一次measurelayout么? 那么iOS只用尽管draw就行了。

iOS UIViewController LifeCycle

这里不提Activity LifeCycle的原因是,ActivityLifeCycle好像和View一点关系都没有

onCreate - onStart - onResume - onPause - onStop - onDestory

这些和Activity本身有关,似乎在哪都找不到View相关的事件回调,但是在iOSUIViewController中,却有

viewWillAppear - viewDidAppear - viewWillDisappear - viewDidDisappear

好像每一个都和View有关,不愧名字为ViewController啊~

我们从Android迁移到iOS首先写UIViewController的时候,一个后遗症就是会去找ViewController的生命周期,其实不用想太多,因为iOS充分利用了gettersetter的便利性,在我们对UIViewController.view的访问过程中,会调用loadViewviewDidLoad这2个回调方法,因此,我们原先在Activity中, setContentView之后干的事情,就可以在viewDidLoad中去做了,至于ViewController是否显示消失,那么就在其它四个回调中去做我们想要做的事。

参考官方文档:https://developer.apple.com/library/prerelease/tvos/documentation/UIKit/Reference/UIViewController_Class/

总结

本文我们简单介绍了UIViewControllerActivity自身生命周期的不同和两个系统布局系统的不同,希望对大家有所帮助,由于我自己也刚刚入门iOS,写的文章可能漏洞较多,欢迎大家补充。

当然学习建议还是 多看官方文档

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/16018.html

相关文章

  • Android 序员学习 iOS ——UIViewController Layout Sys

    摘要:的绘图性能一直完爆的其中一个原因就是因为它简单的布局系统不会因为布局的复杂性增强而增加计算量。当然学习建议还是多看官方文档 回顾 Hello,通过Android程序员 如何入门iOS ——故事从这里开始 作为一个Androider 去看iOS程序的目录结构应该算有个大概的理解了,接下去我们小小介绍下和我们交道打的最多的UIViewController。 什么是ViewControlle...

    chenjiang3 评论0 收藏0
  • Android序员IOS-UI篇

    摘要:还推荐一个布局的库,这个对开发人员也相对友好一点,不过如果不会,可能没法做一些扩展。暂时能想到的总结就这么多,如果有需要补充的欢迎在评论里提问。关于程序员学习,笔者有一系列文章,希望能够给你带来帮助。 从Android转到IOS会有很多不习惯,很多android中常用的控件在IOS中都找不到,本文为大家收集一些Android和IOS对应的控件,如果还完全不知道如何开始的话,建议看看这两...

    Forelax 评论0 收藏0
  • Android 序员学习 iOS ——故事从这里开始

    摘要:最近因为公司的一些原因,需要涉及开发。然后,要准备一台的电脑,并安装好,然后一切就可以开始了。大部分情况的应用是属于,也就是带的程序。所有故事,都是从这里开始对吧接下去要做的事就是根据用户和控件的交互,在视图上做出相应的反馈即可。 最近因为公司的一些原因,需要涉及iOS开发。在坑里摸爬滚打了2周之后,就写个入门心得吧。在一切的一切开始之前,你要先会Objective-C或者Swift(...

    binaryTree 评论0 收藏0
  • Android 序员学习 iOS ——故事从这里开始

    摘要:最近因为公司的一些原因,需要涉及开发。然后,要准备一台的电脑,并安装好,然后一切就可以开始了。大部分情况的应用是属于,也就是带的程序。所有故事,都是从这里开始对吧接下去要做的事就是根据用户和控件的交互,在视图上做出相应的反馈即可。 最近因为公司的一些原因,需要涉及iOS开发。在坑里摸爬滚打了2周之后,就写个入门心得吧。在一切的一切开始之前,你要先会Objective-C或者Swift(...

    hightopo 评论0 收藏0
  • fir.im Weekly - 一切从知识重构开始

    摘要:源码地址模仿中效果的库泡在网上编代码分享了一个安卓动画,模仿中效果的库,因为安卓本身不支持,所以事件的触发是用长按点击来替代。源码已抛出创建安卓的个经验教训微博分享的创建安卓的个经验教训,看看是否对你有所启示。 一年之计在于春,大自然开始了新元素的重构。你的知识库是否也该重构更新呢? 本期 fir.im Weekly 包含最新的Android、iOS 开发工具、源码和好玩的UI 动画分...

    VincentFF 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<