iphone学习笔记 – UIView
来源:互联网 发布:手机买火车票软件 编辑:程序博客网 时间:2024/06/09 15:53
一个窗口可以有多个视图,这是iphone界面的核心规则。view是GUI构建块,它们提供在屏幕上显示的可视元素,并和用户发起交互。每个 iPhone用户界面都是通过一个UIWindow中显示的UIView构建的。UIWindow就是一个特殊的UIView。窗口是所有view的容器,他显示层次的根。
1. 层次结构。
iphone应用程序,所有视图都是基于树的层次结构排序的。每个视图都可以有0到无穷个子试图。应用程序将会决定视图的布局方式和从属关系。子试图按顺序在屏幕上从后往前显示内容。只有表单中已绘制的部分才会显示出来,而未绘制部分允许用户看到表单后面的可视元素。
可以用下面的方法在程序中管理子试图:
- 添加子视图, 可以调用[parentView addSubview: child]。 新添加的子视图通常显示在屏幕的最前面
- 查询某视图的全部子试图的方法是调用其[parentView subviews]。将会返回一组视图,从后向前排序
- 使用[childView removeFromSuperview]删除视图中的子视图
- 使用[parentView exchangeSubviewAtIndex: i withSubviewAtIndex: j]对视图重新排序。使用bringSubviewToFront:或sendSubviewToBack:将子视图向前或者向后移动
- 使用setTag:给子视图添加标记。通过子视图编号,可以用[parentView viewWithTag:]从层次结构中检索出该视图
2. 几何特征
每个视图都使用一个边框定义其界限。这个边框定义了视图的轮廓:其位置、宽度和高度。对于边框,通常表示由原点(CGPoint, x和y)和大小(CGSize,宽度和高度)
- CGRect
CGRect结构在屏幕上定义了一个矩形。它包含原点(rect.origin)和大小(rect.size)。一下函数非常重要:
- CGRectMake(origin.x, origin.y, size.width, size.height)在代码中定义矩形
- NSStringFromCGRect(someCGRect)把CGRect结构转变为格式化字符串
- CGRectFromString(aString)由字符串表示恢复出矩形
- CGRectInset(aRect)用来创建较小或者较大的矩形(中心点相同)。使用正的内嵌值表示较小的矩形,使用负的内嵌值表示较大的矩形
- CGRectIntersectsRect(rect 1, rect 2)可以判断矩形结构是否交叉,两个矩形对象是否重叠
- CGRectZero是一个高度和宽度为零、位于(0,0)的矩形常量。需要创建边框但是还不确定边框大小或者位置时,可以使用此常量。
- CGPoint和CGSize
CGPoint表示位置,CGSize表示大小
- 定义位置
可以通过设置中心点(CGPoint)或边界(CGRect)定义视图的位置。
- 转换
标准Core Graphics调用会实时转换视图。任何UIView子类的drawRect:方法都提供通过低级Core Graphics调用进行绘图的入口点。 在调用Core Graphics函数时,记住Quartz从左下方建立坐标系,而UIViews的原点位于左上方。
- 其他视图特征
除了物理屏幕布局之外,还可以设置以下视图特征
- 每个视图都有半透明要素(alpha),其值介于不透明和透明之间。可以通过[myView setAlpha:value]来调整它
- 可以为视图背景制定一个颜色。[myView setBackgroundColor:[UIColor redColor]]
- 视图布局
iphone3的屏幕分辨率是320×480, iphone4的屏幕分辨率是640×960. 屏幕顶部的标准状态栏都占用20像素的高度。要查询状态栏边框,可以调用[[UIApplication sharedApplication] statusBarFrame]. 要隐藏状态栏,可以调用如下方法:[[UIApplication sharedApplication] setStatusBarHidden:YES animated:NO]. 或者在应用程序的Info.plist文件中将UIStatusBarHidden设置未<true/>
3. UIView动画
UIView动画对于在视图的当前状态和更改后的状态之间构建可视桥梁非常理想。动画变化包括以下方面:
- 位置变化 – 在屏幕上移动视图
- 大小变化 – 更新视图边框
- 透明度变化 – 更新视图的alpha值
- 对视图应用的旋转或其他放射转换的变化
UIView动画以块的形式工作,即每次执行一项完整的事务。块以beginAnimations:context:调用开始, 以commitAnimatios结束。在位于这两个调用之间的块中,定义动画运行的方式并执行实际的视图更新。你将使用的动画控件包括以下几个:
- beginAnimations:context。 标记动画块的开始
- setAnimationCurve。定义d’o'n动画加速及减速的方式。一般都采用渐入/渐出(UIViewAnimationCurveEaseInOut), 不是选择其他曲线。
- setAnimationDuration. 以秒为单位指定动画的长度。
- commitAnimations。标记动画块结束
- iphone学习笔记 – UIView
- iphone学习笔记-UIView如何管理它的子视图
- iphone学习笔记-UIView如何管理它的子视图
- iPhone开发学习笔记通过UIView实现动画效果
- iPhone 的 UIView的学习
- UIView学习笔记
- UIView学习笔记
- IOS学习笔记---UIView
- UIView动画学习笔记
- UIView学习笔记
- iPhone UIView
- iOS学习笔记1-UIView
- ios学习笔记-01-UIView
- UIView动画(学习笔记)
- iOS学习笔记5-UIView
- ios学习笔记之UIView
- iOS 学习笔记 UIView动画
- [IPhone]学习笔记
- Activity与Thread之间的通讯
- QC与WIN7、IE8 兼容问题解决方案
- oracle sql 语句 in 与EXIST用法比较
- 跨数据库(SQL、Oracle)分布式事务
- JAVA多线程,面试者的最爱!
- iphone学习笔记 – UIView
- MongoDB添加用户-增/删/改/查/权限设置
- Android架构---学东西还是从高处看才能学得远!!
- /Android面试之---讲一下你对Activity的了解(面试必问的).
- SQL的两种分页方式
- 简单内存泄漏检测方法 解决Detected memory leaks!
- 专访实战专家,揭秘iOS神奇开发之路
- Android面试之---Android的虚拟机Dalvik 介绍
- ios学习--iOS CVImageBuffer distorted from AVCaptureSessionDataOutput with AVCaptureSessionPresetPhoto