iOS 开发学习之 User Interface(4)UIView 与 UIViewController【一】
来源:互联网 发布:淘宝子账号认证二维码 编辑:程序博客网 时间:2024/05/17 04:10
UIViewController 与 UIView
self.view -> UIView : 根视图
一个界面上的UI是添加到self.view上,是self.view的直接或间接的子视图。
回顾: window.rootViewController
——————————————————————————————
UIViewController
视图控制器
作用:提供了基本的属性或方法用来管理应用程序的视图。
一个视图控制器管理一组构成一个用户界面的视图。包括加载,排列视图,与视图的交互,协调与数据的响应。除此之外,还处理与其他视图控制器的交互。
一般情况下,不会直接创建UIViewController的实例,而是实例话它的子类。
——————————————————————————————创建UIView
初始化:
initWithFrame:
基本属性:
.backgroundColor
.hidden // 是否隐藏
.alpha // 透明度 0~1
.layer
.clipsToBounds
——————————————————————————————
.frame // 当前视图相对于(直接)父视图的位置和大小
.bounds // 当前视图相对于自己的位置和大小
.center // 当前视图的中心点相对于父视图的位置
.transform // 形变属性,改变视图的平移,缩放比例,旋转角度等
——————————————————————————————
.tag // 视图的标识
.userInteractionEnable // 是否允许视图接收用户交互,默认为YES
方法:
视图间的层次,通过addSubview:使一个视图成为另一视图的子视图。一个视图只能有一个父视图,也就是说:当一个视图经过[aView addSubview:],[bView addSubview:]后,它的父视图是bView。
viewWithTag: // 通过视图标识获取视图对象
addSubview: // 添加子视图
removeFromSuperview // 子视图从父视图脱离
bringSubviewToFront: // 将某一子视图移动到其父视图最上层
insertSubview:atIndex: // 将某一子视图插入到指定层级索引
insertSubview:aboveSubview: // 将某一子视图插入到某一子视图之上
insertSubview:belowSubview: // 将某一子视图插入到某一子视图之下
exchangeSubviewAtIndex:withSubviewAtIndex: // 交换两个子视图的层级索引
——————————————————————————————
父子视图间的自适应
父视图缩放时,子视图的位置,大小也随之变化。
父视图.autoresizesSubviews // 设置子视图们是否可适应父视图的变化
子视图.autoresizingMask // 设置子视图适应父视图的模式
例:
//设置uv随子视图的变化而变化
uv.autoresizesSubviews =YES;
//设置uv的子视图label 以何种模式适应父视图uv的变化,带位移的枚举可用 | 等
// lb.autoresizingMask = UIViewAutoresizingFlexibleHeight | UIViewAutoresizingFlexibleWidth;
lb.autoresizingMask =UIViewAutoresizingFlexibleTopMargin | UIViewAutoresizingFlexibleBottomMargin;
——————————————————————————————UIView的图层:CALayer
任何一个视图都是由一个主图层+多个子图层构成。
UIView 对象.layer : 是主图层
UIView 绘图部分是由CALayer进行,UIView是CALayer的管理器
——————————————————————————————动画
在iOS中动画,分属在两个框架下:UIKit 和 Quartz Core, 分别是在UIView 和 CALayer 上进行操作。前者是后者的封装。
[工程]:UIViewAnimation
a. UIView 级别的动画(封装度高,代码简单,灵活度低)
设置视图属性在一段时间内的变化值,一般只需要设置开始,结束值即可。
方法一及步骤:
+ beginAnimations:context: // 开始一个动画块
+ setAnimationDuration: // 设置动画持续时间
+ setAnimationDelay: // 设置动画延时
+ setAnimationRepeatCount: // 设置动画重复次数
+ setAnimationCurve: // 设置动画曲线样式
+ setAnimationTransition:forView:cache: // 在动画块期间为视图设置过渡
//…这里设置要变化的视图属性,如frame
+ commitAnimations // 提交一个动画块
——————————————————————————————
方法二:(使用block对象)
+ animateWithDuration:delay:options:animations:completion: // 使用指定的持续时间,延时,选项,提交动画块,动画完成块 实现动画;transform
[工程]: CALayerAnimation
b. CALayer级别的动画 (直接操作图层,代码稍复杂,灵活度高)
由 Core Animation (核心动画,简称 CA) 实现,直接作用于CALayer, 对于 UIView级别的动画,底层实际上也是由CA实现。
CA下的动画类:CAAnimation 是所有动画类的父类,不能直接使用,使用其子类。
可以使用的子类有:CABasicAnimation, CAKeyframeAnimation , CAAnimationGroup, CATransition.
>> CATransition 创建动画
方法及步骤:
[CATransition animation] // 创建动画对象
setDuration: // 动画持续时间
setType: // 动画类型
setSubtype: // 动画方向
.layer addAnimation:forKey: // 将动画对象添加到图层CALayer上
——————————————————————————————
- iOS 开发学习之 User Interface(4)UIView 与 UIViewController【一】
- iOS 开发学习之 User Interface(5)UIView 与 UIViewController【二】
- iOS 开发学习之 User Interface(3)iOS 坐标系和 UILabel 与 UIButton
- iOS 开发学习之 User Interface(10)UICollectionView 与 UIStoryBoard 与 Xib
- iOS 开发学习之 User Interface(1)APP 生命周期
- iOS 开发学习之 User Interface(2)UIWindow 视窗
- iOS 开发学习之 User Interface(9)UITableView
- iOS 开发学习之 User Interface(6)UITextField 与 UIImageView
- iOS 开发学习之 User Interface(7)UINavigationController 与 UITabBarController
- iOS 开发学习之 User Interface(8)UIScrollView 与 数据持久化
- iOS 开发学习之 User Interface(11)iOS事件处理机制及手势 与 MVC浅述
- iOS技巧篇之UIViewController与UIView的双向交互
- [转]Building a iOS Unity + UIView / UIViewController / Interface Builder App
- iOS控件学习笔记(UIView、UIViewController)
- iOS开发之UIViewController
- iOS开发之UIViewController
- User Interface(UI)之Layouts学习
- IOS开发(6)之UIViewController
- python读取写入文件
- java实现的简单网页爬虫:Servlet + MySQL5.5(二)
- Makefile万能写法(gcc程序以及arm-linux-gcc程序)-转
- Jquery 动画效果 左右移动
- Poj 3026 Borg Maze
- iOS 开发学习之 User Interface(4)UIView 与 UIViewController【一】
- C++子类如何调用父类构造函数
- uboot编译学习---执行make TQ2440_config后的,操作过程
- emacs简单的命令
- 18岁生日
- makefile 单文件夹模版
- SDWebImage源码分析
- 【CodeVS】1245 - Ⅲ - 变式Ⅱ之【Uva】11997 K Smallest Sum
- AlertDialog(对话框)示例