iOS学习之视图控制器
- 根据需求的不同,自定义视图继承的类也有所不同。一般自定义的视图会继承于UIView。
- 创建一个UIView子类:@interface LTView : UIView
- 在类的初始化方法中添加子视图
- 类的.h文件提供一些接口(方法),便于外界操作子视图
- @property (nonatomic, strong)UILabel *leftLabel; // 左侧label
@property (nonatomic, strong)UITextField *rightField; // 右侧文本框
- 自定义LTView(UILabel,UITextField)使用了一种设计模式:复合设计模式。
- 复合设计模式:A类中,使用B类(或者更多类)作为自己的成员(实例变量)。
- iOS中复合是特别常见的设计模式。iOS新控件往往都是用已有控件组合而成的。
- 控制视图大小变化、布局视图、响应时间。
- 检测以及处理内存警告。
- 检测以及处理屏幕旋转。
- 检测视图的切换。
- 实现模块独立,提高复用性。
- 自定义视图类继承UIView。在初始化方法中添加子视图控件。
- 重写controller的loadView方法。创建自定义视图对象,并指定为controller的view。(注:loadView方法在控制器的view为nil的时候被调用,用于以变成的方式创建view的时候用到。loadView是使用代码生成视图的时候,当视图第一次载入的时候调用的方法,用于使用(写)代码来实现控件。)
- 将子视图控件对象设置为自定义视图类的属性,在viewDidLoad方法中进行设置:添加action、设置delegate等等。
- 在Controller中添加按钮点击事件实现和代理方法的实现。
- UIViewController是MVC设计模式的核心。
- MVC是一个框架级的设计模式。
- M是Model,主要用于建立数据模型(即数据的结构)。
- V是View,主要功能是展示数据。
- C是控制器,主要是控制M和V的通信
- supportedInterfaceOrientations(设置设备支持旋转的方向,如果不添加,视图控制器将无法检测屏幕的旋转)。
- willRotateToInterfaceOrientation:duration:(暂停音乐、关闭视图交互等)。
- willAnimateRotationToInterfaceOrientataion:duration:(添加自定义动画等)。
- didRotateFromInterfaceOrientataion:(播放音乐、打开视图交互等)。
- 注意视图控制器会自动调整view的大小以适应屏幕旋转,bounds被修改,触发view的layoutSubviews方法。
- view重写layoutSubviews方法,根据设备方向,重新布局。
- [UIApplication shareApplication].statusBarOrientation提供设备当前方向。
- 控制器能检测内存警告,以便我们避免内存不够引起的crash。
- 在定义的controller子类中重写didReceiveMemoryWarning方法。
- 释放暂时不适用的资源(self.view及view的子视图例如数据对象、图像)。
iOS学习之视图控制器的更多相关文章
- Swift - iOS中各种视图控制器(View Controller)的介绍
在iOS中,不同的视图控制器负责不同的功能,采用不同的风格向用户呈现信息.下面对各个视图控制器做个总结: 1,标准视图控制器 - View Controller 这个控制器只是用来呈现内容.通常会用来 ...
- iOS开发中视图控制器ViewControllers之间的数据传递
iOS开发中视图控制器ViewControllers之间的数据传递 这里我们用一个demo来说明ios是如何在视图控制器之间传递重要的参数的.本文先从手写UI来讨论,在下一篇文章中讨论在storybo ...
- iOS 动画学习之视图控制器转场动画
一.概述 1.系统会创建一个转场相关的上下文对象,传递到动画执行器的animateTransition:和transitionDuration:方法,同样,也会传递到交互Controller的star ...
- iOS学习之视图加载过程中会触发的方法(loadView/viewDidLoad/didReceiveMemoryWarning)
1.loadView 这是视图控制器用来加载根视图的方法; 如果需要将自定义的视图作为根视图,则不需要调用父类对该方法的实现([super loadView]);直接将自定义视图通过self.view ...
- iOS开发之视图控制器(UIViewController)
视图控制器应该在MVC设计模式中扮演控制层(C)的角色,UIViewController的职责对内管理与之关联的View,对外跟其他UIViewController通信和协调.一个视图控制器管理一个视 ...
- iOS:探究视图控制器的转场动画
一.介绍 在iOS开发中,转场动画的使用无处不见,不只是我们自己更多的使用UIViewblock动画实现一个转场动画,其实,在我们实现VC控制器跳转的时候都是转场动画的实现,例如标签栏控制器的切换.模 ...
- 学习模型-视图-控制器MVC模式
1.MVC简介 MVC全名是Model View Controller,是模型(model)-视图(view)-控制器(controller)的缩写,一种软件设计典范,用一种业务逻辑.数据.界面显示分 ...
- iOS学习笔记——多控制器管理
NavigationController 在StoryBoard中添加NavigationController 在上网看到很多都是用xib添加,使用StoryBard的有两种办法,但我觉得下面用到那种 ...
- IOS 学习笔记 2015-04-15 控制器数据反向传值
// // FirstViewController.h // 控制器数据传递 // // Created by wangtouwang on 15/4/15. // Copyright (c) 201 ...
随机推荐
- iOS常用插件
iOS常用插件总结:http://blog.csdn.net/oik_ios/article/details/50251191http://www.jianshu.com/p/d24eea8b405a ...
- PHP实现物流查询(通过快递网API实现)
物流查询实现 引 言:目前快递公司太多了,不可能一个一个去申请api查询.这个时候,就可以通过合作,找一些中间商合作.我试了两家,一家是快递100,一家是快递网. 他们都需要申请key.但是快递100 ...
- Javascript之严格模式详解
一.概述 除了正常运行模式,ECMAscript 5添加了第二种运行模式:"严格模式"(strict mode).顾名思义,这种模式使得Javascript在更严格的条件下运行. ...
- Android WebRTC 音视频开发总结(四)-- webrtc传输模块
在介绍WebRTC通讯之前我们先来看一个P2P视频聊天包括的主要过程,转载请说明出处(博客园RTC.Blacker): 音视频数据采集->编码->发送->接收->解码-> ...
- 一步一步学习SignalR进行实时通信_1_简单介绍
一步一步学习SignalR进行实时通信\_1_简单介绍 SignalR 一步一步学习SignalR进行实时通信_1_简单介绍 前言 SignalR介绍 支持的平台 相关说明 OWIN 结束语 参考文献 ...
- Copying Rowsets
I find that you often need to create and manipulate standalone rowsets. Sometimes you can get the da ...
- c#学习之Socket网络编程
我是新手以前没写过博客 希望大家勿喷, 在编写Socket的时候需要导入System.Net.Socket 命名空间.利用该类我们可以直接编写Socket的客户端和服务的的程序了, 这里我们只讲tpc ...
- SAE平台的文件I/O处理
用过SAE平台的朋友应该知道,出于平台安全性的考虑,SAE限制了用户对于本地IO的使用.但这样对于一些传统的PHP项目,也许带来了很多不便,因为它们都或多或少的有对本地IO的操作,像Sma ...
- 平衡二叉树(AVL)
性质:它是一棵空树或它的左右两个子树的高度差的绝对值不超过1,并且左右两个子树都是一棵平衡二叉树. 定义:平衡二叉树或为空树,或为如下性质的二叉排序树: (1)左右子树深度之差的绝对值不超过1; (2 ...
- Android sqlite3工具的使用
sqlite3 <数据库名称> 进入数据库操作模式 eg: sqlite3 contacts.db .tables 查看所有的表 eg: .table .schema 查看查看库中所有表的 ...