iOS7应用开发5、视图控制器View Controller及其生命周期

简介: 1、UITextView: 该类与Label类类似,可显示多行,可以编辑内容,可以滚动查看内容; 包含属性NSTextStorage *textStorage,该类是NSMutableAttributedString的基类;修改该属性可以自动...

1、UITextView:

该类与Label类类似,可显示多行,可以编辑内容,可以滚动查看内容;

包含属性NSTextStorage *textStorage,该类是NSMutableAttributedString的基类;修改该属性可以自动更新UITextView的内容;

包含属性UIFont *font,用于设置所有字符的字体;

NSTextContainer *textContainer和NSLayoutManager *layoutManager属性,用于设置文本的其他一些属性;


2、视图控制器的生命周期

* 创建:通过storyboard或者代码创建MVC;

* 设定显示视图接口(outlet)、几何变化、视图的显示和消失等操作;

* 随后调用viewDidLoad,可以进行下一步的初始化操作;只会被调用一次;注意不要再这里设定与界面尺寸相关的设置;

* 在视图显示之前调用viewWillAppear;该函数可以多次调用;

* 视图消失之前调用viewWillDisappear;处理保存当前视图的一些信息(如需要);

* 在布局变化前后,调用viewWill/DidLayoutSubviews处理相关信息;

* 自动旋转:shouldAutorotate返回yes,supportedInterfaceOrientations返回支持的方向;

* 内存不足警告时,调动didReceiveMemoryWarning进行处理,如释放掉当前没有显示的视图,将强引用对象设为nil等;


进一步讨论:

UIViewController继承自UIResponder,控制数据和视图的显示等操作。在创建ViewController的时候调用init方法的时候,在调用[super init]的时候自然会调用initWithNib方法;在创建视图控制器的时候,首先会判断当前视图控制器中是否存在视图;如果不存在,则会调用loadView方法;在该方法中进行判断视图产生的方法:自定义、storyboard还是空视图,在此之前,当前ViewController的视图还是nil;而当自定义视图、从storyboard中装载视图或者生产空视图完成后,ViewController便有其具体的值了。下图就是大致流程:


如果视图控制器的view尚不存在,那么在调用其getter方法的时候会调用loadView方法(注意,不应该直接在代码中调用loadview方法,而应覆盖该方法实现自己的内容);覆盖该方法的时候必须要自己创建视图供viewcontroller显示,或者调用[super loadView];


3、通知NSNotification

* 获取默认通知中心 :[NSNotificationCenter defaultCenter];

* 对某通知添加响应:addObserver: selector: name: object:;

* 关闭通知观察者:removeObserver;

目录
相关文章
|
11天前
|
移动开发 Java Android开发
探索iOS与安卓应用开发的核心差异
【6月更文挑战第22天】在移动开发的广阔天地中,iOS和安卓这两大平台以其独特的特性和用户基础塑造了不同的开发生态。本文将深入探讨这两个平台在开发环境、编程语言、用户界面设计、性能优化以及发布流程方面的关键差异,为开发者提供实用的比较视角,并指出各自平台的特有优势和面临的挑战。了解这些差异有助于开发者更精准地定位自己的应用开发策略,实现跨平台的成功。
|
13天前
|
编解码 Android开发 iOS开发
探索iOS与安卓应用开发的差异性与交互设计哲学
在移动应用开发的广阔天地中,iOS和安卓这两大操作系统不仅塑造了市场的双雄争霸格局,更在开发者社区内激发了关于“最佳实践”的热烈讨论。本文将深入探讨这两个平台在技术架构、用户界面设计以及市场策略上的根本差异,揭示它们如何影响应用的性能、用户体验和商业成功。通过比较分析,我们将展现每个平台的独特优势,并为开发者提供战略性建议,以便在不同生态系统中实现最大化的产品潜力和用户满意度。
|
27天前
|
安全 Java Android开发
探索iOS与Android应用开发的异同
【6月更文挑战第6天】随着智能手机的普及,移动应用开发已成为技术行业的热点。本文将深入探讨iOS和Android两大主流平台在应用开发过程中的不同之处,包括开发环境、编程语言、用户界面设计、市场策略以及安全性等方面的差异,旨在为开发者提供全面的指导和参考。
27 6
|
7天前
|
传感器 安全 Android开发
探索iOS与安卓应用开发的性能差异
在移动操作系统领域,iOS和安卓的较量从未停歇。本文将深入探讨两大平台在应用开发中的性能表现,揭示它们各自的优势与局限。通过对比分析,我们将理解开发者如何在这两个不同的生态系统中做出权衡,以及这些选择如何影响最终用户的体验。
9 0
|
14天前
|
搜索推荐 物联网 API
探索iOS应用开发的新趋势
【6月更文挑战第19天】在移动技术不断进步的今天,iOS应用开发正面临前所未有的变革。本文将深入探讨最新的iOS开发技术,包括SwiftUI框架的创新使用、Combine框架在数据处理中的优势,以及App Clips和WidgetKit如何为应用带来新的生机。通过分析这些技术的实际应用案例,我们旨在为开发者提供一条清晰的道路,帮助他们把握未来iOS应用的开发方向。
|
19天前
|
IDE Java Android开发
探索iOS与安卓应用开发的差异
【6月更文挑战第14天】本文深入探讨了iOS和安卓两大移动操作系统在应用开发方面的不同之处,包括开发环境、编程语言、用户界面设计以及市场策略等关键因素。通过比较分析,旨在为开发者提供全面的视角,以便更好地理解各自平台的特定需求和优势。
|
22天前
|
安全 Java Android开发
探索Android与iOS应用开发的核心差异
【6月更文挑战第11天】在移动设备的世界中,Android和iOS两大操作系统各占半壁江山。本文将深入探讨这两个平台在应用开发上的主要区别,包括开发环境、编程语言、用户界面设计、市场策略和安全性等方面。通过比较分析,旨在为开发者提供一份清晰的指南,帮助他们根据项目需求和目标受众选择最合适的开发路径。
17 2
|
5天前
|
设计模式 存储 Swift
探索iOS应用开发:从新手到专家
【6月更文挑战第28天】在这篇文章中,我们将深入探讨iOS应用开发的各个方面。无论你是刚开始学习iOS开发的新手,还是已经有一定经验的开发者,这篇文章都将为你提供有价值的信息和指导。我们将从基础知识开始,逐步深入到更复杂的主题,包括设计模式、性能优化和最新的iOS技术趋势。通过这篇文章,你将获得从新手到专家的全面指导。
|
2月前
|
设计模式 前端开发 Swift
使用Swift进行iOS应用开发:深入探索与最佳实践
【5月更文挑战第24天】探索Swift在iOS开发中的深度应用与最佳实践。Swift以其简洁语法、类型安全、面向对象、高性能及与Objective-C的互操作性脱颖而出。使用Xcode设置开发环境,学习Swift语法,创建并设计项目,编写业务逻辑,同时进行调试和测试。遵循MVC模式,利用SwiftUI、并发特性,并注重内存管理,持续学习新工具和技术,以实现高质量应用开发。
|
20天前
|
vr&ar Android开发 iOS开发
安卓与iOS应用开发:比较、挑战与未来趋势
本文深入探讨了安卓与iOS应用开发的各自优势、面临的挑战以及未来发展趋势。通过对开发工具、市场份额、安全性、用户体验等方面的详细比较,旨在为开发者提供全面的参考,助力其在选择开发平台时做出明智决策。同时,文章还展望了移动应用开发的前沿趋势,探讨了人工智能和物联网技术对移动应用的影响。
25 0