在使用IB的时候才会涉及到此方法的使用,当.nib文件被加载的时候,会发送一个awakeFromNib的消息到.nib文件中的每个对象,每个对象都可以定义自己的awakeFromNib函数来响应这个消息,执行一些必要的操作。

看例子:

创建一个viewController with XIB

定义一个UIView的子类

打开xib,并把View的类型指定为上一步骤定义的子类

然后在TestView.m中加入 awakeFromNib方法,运行程序发现此方法被调用了!!!可以在其中加代码来定义TestView的一些其他特性。

结果如图:

第一句:通过Xcode实例化controller,但controller的类在IB中创建时调用此方法

{我看有这么说的

awakeFromNib是一个只有在GUI对象被成功加载才调用的方法,而init方法是在GUI被创建前就已经调用了。

当程序对Nib文件进行反序列化然后初始化时,会调用一次awakeFromNib。 
但是如果你使用initWithNibName调入Nib时,awakeFromNib是不会被调用的。

这个好像不准确!!!

第二句:initWithcoder是系统自动调用的,以后说!!!

第三句和第四句:这两局setNeedsDisplay会异步的调用drawRect来更新view的内容,这个我可以理解,但为什么是两句有点不理解,请高手指教

第四句:这句就是awakeFromNib被调用的地方了。

第五句:上述都结束后,view处理好了后就调用viewDidLoad了,所以无论从代码还是从IB加载view都要调用viewDidLoad的。

awakeFromNib小结相关推荐

  1. 【阶段小结】协同开发——这学期的Git使用小结

    [阶段小结]协同开发--这学期的Git使用小结 一.Git简介 1. Git简单介绍 2. Git工作流程以及各个区域 3. Git文件状态变化 二.Git安装&Git基本配置 三.个人踩坑 ...

  2. 正则表达式(括号)、[中括号]、{大括号}的区别小结

    正则表达式(括号).[中括号].{大括号}的区别小结 </h1><div class="clear"></div><div class=& ...

  3. php中$_REQUEST、$_POST、$_GET的区别和联系小结

    php中$_REQUEST.$_POST.$_GET的区别和联系小结 作者: 字体:[增加 减小] 类型:转载 php中有$_request与$_post.$_get用于接受表单数据,当时他们有何种区 ...

  4. c cin.get()的用法小结_c语言中static 用法

    static在c里面可以用来修饰变量,也可以用来修饰函数. 先看用来修饰变量的时候.变量在c里面可分为存在全局数据区.栈和堆里.其实我们平时所说的堆栈是栈而不是堆,不要弄混. int a ; int ...

  5. linux 压缩文件夹格式,Linux下常见文件格式的压缩、解压小结

    Linux下常见文件格式的压缩.解压小结 .tar 解包: tar xvf FileName.tar 打包:tar cvf FileName.tar DirName (注:tar是打包,不是压缩!) ...

  6. 设计模式:简单工厂、工厂方法、抽象工厂之小结与区别

    简单工厂,工厂方法,抽象工厂都属于设计模式中的创建型模式.其主要功能都是帮助我们把对象的实例化部分抽取了出来,优化了系统的架构,并且增强了系统的扩展性. 本文是本人对这三种模式学习后的一个小结以及对他 ...

  7. flash 入门课知识小结

    一. 几种类型帧的小结:(关键帧.空白关键帧.普通帧) 1. 特点   帧--是进行flash动画制作的最基本的单位,每一个精彩的flash动画都是由很多个精心雕琢的帧构成的,在时间轴上的每一帧都可以 ...

  8. Eigen/Matlab 使用小结

    文章目录 [Eigen Matlab使用小结](https://www.cnblogs.com/rainbow70626/p/8819119.html) Eigen初始化 0.[官网资料](http: ...

  9. MATLAB【十三】————仿真函数记录以及matlab变成小结

    part one:matlab 编程小结. 1.char 与string的区别,char使用的单引号 '' ,string使用的是双引号"". 2.一般标题中的输出一定要通过 nu ...

最新文章

  1. Ubuntu 14.04 64bit上编译安装simple-rtmp-server(srs)服务器
  2. layer.js 弹窗组件API文档
  3. Android --- GridLayoutManager 设置了 item 均匀分布,但是无效
  4. 第三方控件DevExpress的TreeList绑定XML文件
  5. JavaScript 开发的40个经典技巧
  6. Maven 项目中配置私服
  7. python机器学习库sklearn——神经网络
  8. 开课吧课堂:Kubernetes集群环境常见问题解决
  9. OpenStack云第三天
  10. 兴业银行实时跨行转入功能、免除手续费及网点排队
  11. 当你拥有足够的经验时,自然就会想到的东西---面向对象的设计原则!
  12. 在线购物系统—类图设计
  13. Mysql启动之报错:The server quit without updating PID file
  14. 北大计算机系女神每天必看必学的IT公众号
  15. Unity 3D基础入门编程_艾孜尔江撰稿
  16. 电压源和电流源的区别
  17. 中国热泵热水器行业发展趋势及投资风险研究报告
  18. GRIB2 资料处理
  19. FAST上网设置服务器未响应,fast路由器不能上网的解决方法
  20. 【IDE】Eclipse中的workspace workingset 如何更好的搭配使用,以及本地项目文件夹的分类

热门文章

  1. alexa 网站排名查询源码欣诚优化PHP版2.0
  2. 计算机如何删除用户密码,教你如何简单删除电脑开机密码
  3. C++输出双精度数的输出控制
  4. 爱奇艺海量数据实时分析架构的演进
  5. 武汉涉密系统集成资质申报的重点和难点浅析
  6. 某程序员吐槽:为了家庭天天996,却发现妻子出轨,孩子才三岁,该不该原谅?...
  7. win7系统访问局域网报“未知的用户名或错误密码”解决办法
  8. 用python抓取网页中所有pdf文件的笨方法
  9. 小狼毫(RIME)输入法入门使用详细教程
  10. 剖析SGI STL空间配置器(空间配置器的重要性和重要成员及函数)