您的位置:首页 > 产品设计 > UI/UE

iphone学习笔记 – UIView

2012-03-29 13:58 260 查看
几乎所有出现在iPhone屏幕上的内容都是视图。视图的作用类似于一块画布,可以在上面绘制各种颜色、图片和按钮。可以在屏幕中拖动它们,也可以重新调整他们的大小,还可以对它们进行分层。

一个窗口可以有多个视图,这是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。标记动画块结束
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: