IOS中UIView的生命周期

UIView对象一般都是由alloc和init方法创建的,由UIViewController进行维护和管理。一般需要完 成的任务有:创建视图,显示视图,隐藏视图和释放视图。

一般视图不会在程序运行时立刻创建 并载入,只有当应用需要这个视图的时候才会创建,这种延迟创建视图的方法能够提高内存的使用效率 。同样,在需要这个视图之前,系统会检查是不是已经载入过这个视图,如果是,直接返回创建过的 view,如果没有,则开始创建过程

- (void)loadView

载入视图过程中执行代码

- (void)viewDidLoad

视图载入完成需要执行的代码

- (void)viewDidUnload

卸载视图代 码

一个视图切换到另一个视图的时候,之前那个视图并不会被清除,还会留在内存中等待系统调 用,所以一个视图在使用到卸载过程中虽然可能多次出现,但是只会载入一次,也就是调用一次 loadView和viewDidLoad方法。

在IOS6以前,在系统接收到Memory Warning时,会调用 viewDidUnload这个方法,对视图进行卸载清空。但是IOS6以后这个方法已经不再被使用了,文档里是这 么描述的

这里给出的解释是, 视图不再在低内存的情况下被清除了。苹果公司WWDC2012对这个方法的告别陈述

The method viewWillUnload and viewDidUnload. We’re not going to call them anymore. I mean, there’s kind of a cost-benifit equation and analysis that we went through. In the early days, there was a real performance need for us to ensure that on memory warnings we unloaded views. There was all kinds of graphics and backing stores and so forth that would also get unloaded. We now unload those independently of the view, so it isn’t that big of a deal for us for those to be unloaded, and there were so many bugs where there would be pointers into。

具体为什么不需要清空view呢,下面解释了原因(摘自唐巧的《再见,viewDidUnload方法》 )

1.UIView有一个CALayer的成员变量,CALayer是具体用于将自己画到屏幕上的。如下图所示:

时间: 2024-09-08 11:16:19

IOS中UIView的生命周期的相关文章

Android开发中Activity的生命周期及加载模式详解

本文给大家介绍Activity的生命周期,如果大家学习过iOS的小伙伴的话,Activity的生命周期和iOS中ViewController的生命周期非常类似.生命周期,并不难理解.一个人的生命周期莫过于生老病死,花儿的生命周期就是花开花谢了.在Android中Activity的生命周期莫过于Activity的创建到消亡的过程了.本篇博客就会介绍Activity生命周期中的不同阶段,通过实例的形式来窥探一下Activity的生命周期.搞明白Activity的生命周期是至关重要的,因为只有搞明白每

iOS视图控制对象生命周期-init、viewDidLoad、viewWillAppear、viewDidAppear、viewWillDisappear、view

iOS视图控制对象生命周期: init.viewDidLoad.viewWillAppear.viewDidAppear.viewWillDisappear.viewDidDisappear的区别及用途 init-初始化程序 viewDidLoad-加载视图 viewWillAppear-UIViewController对象的视图即将加入窗口时调用: viewDidApper-UIViewController对象的视图已经加入到窗口时调用: viewWillDisappear-UIViewCon

spring入门(4) spring中Bean的生命周期总结

Spring中Bean的生命周期,在学习spring的过程中bean的生命周期理解对学习spring有很大的帮助,下面我就分别介绍在 ApplicationContext和BeanFactory中Bean的生命周期. 1.在ApplicationContext中Bean的生命周期 生命周 期执行的过程如下: 1.需找所有的bean根据bean定义的信息来实例化bean 2.使用依赖注入,spring按bean 定义信息配置bean的所有属性 3.若bean实现了BeanNameAware接口,工

path-android中关于Activity生命周期的方法只有两个 onCreate,onResume

问题描述 android中关于Activity生命周期的方法只有两个 onCreate,onResume public class BolgDetailActivity extends SuperActivity implements OnClickListener{ @Overrideprotected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.

JVM中的对象生命周期详解

在JVM运行空间中,对象的整个生命周期大致可以分为7个阶段:创建阶段 (Creation).应用阶段(Using).不可视阶段(Invisible).不可到达阶段 (Unreachable).可收集阶段(Collected).终结阶段(Finalized)与释放 阶段(Free).上面的这7个阶段,构成了 JVM中对象的完整的生命周期.下面 分别介绍对象在处于这7个阶段时的不同情形. 创建阶段 在对象创建阶段,系统要通过下面的步骤,完成对象的创建过程: (1)为对象分配存储空间. (2)开始构造

18_Android中Service的生命周期,远程服务,绑定远程服务,aidl服务调用,综合服务案例,编写一个应用程序调用远程支付宝远程服务场景

============================================================================服务的生命周期: 一.采用start的方式开始服务 生命周期如下:            onStart()过时了 开启服务:onCreate()-àonStartCommand()-àonDestory(); 如果服务已经开启,不会重复的执行onCreate(),而是会调用onStartCommand(); 如果停止的时候onDestory()

Android中Activity的生命周期探讨_Android

1.完整生命周期 上图是Android Activity的生命周期图,其中Resumed.Paused.Stopped状态是静态的,这三个状态下的Activity存在时间较长. (1)Resumed:在此状态时,用户可以与Activity进行交互,Activity在最前端 (2)Paused:在此状态时,Activity被另外一个Activity遮盖,此Activity不可接受用户输入信息.另外一个Activity来到最前面,半透明的,但并不会覆盖整个屏幕. (3)Stopped:在此状态时,A

深入解读Android开发中Activity的生命周期_Android

什么是Activity       首先,Activity是Android系统中的四大组件之一,可以用于显示View.Activity是一个与用记交互的系统模块,几乎所有的Activity都是和用户进行交互的,但是如果这样就能说Activity主要是用来显示View就不太正确了.        在深入了解Activity之前,我们先要知道一下MVC设计模式,在JAVAEE 中MVC设计模式已经很经典了,而且分的也比较清晰了,但是在Android中,好多人对MVC在Android开发中的应用不是很

Android中Fragment的生命周期与返回栈的管理_Android

既然我们已经知道了Fragment很好用,那么我们也需要知道它的工作原理.Fragment只能存在于(作为容器的)Activity中,每一个Fragment都有自己的视图结构,可以像我们之前那样载入布局.Fragment的生命周期更加复杂,因为它有更多的状态,如图: 我们来看一下Fragment完整的生命周期. 在Fragment生命周期开始,onInflate方法被调用.要注意的是,这个方法只在我们直接用标签在布局文件中定义的时候才会被调用.我们可以在这个方法中保存一些在xml布局文件中定义的