Chinaunix首页 | 论坛 | 博客
  • 博客访问: 307072
  • 博文数量: 53
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 325
  • 用 户 组: 普通用户
  • 注册时间: 2013-10-14 22:50
文章分类

全部博文(53)

文章存档

2014年(15)

2013年(38)

我的朋友

分类: iOS平台

2013-11-07 10:22:53

来自(文章摘要)地址:

概述

UIView对象在屏幕中定义了一个复杂区域和界面来管理这个区域的内容

视图的职责:
画图和动画。
布局和子视图管理。

事件处理。

 

1、创建一个视图对象

CGRect viewRect = CGRectMake(10,10,100,100);
UIView* myView = [[UIView alloc] initWithFrame:viewRect];
[self.window addSubview :myView];//将视图作为子视图添加到window中

2、动画

改变一些视图属性将会使用到动画,改变属性时创建一个动画,用于给用户传递在较短时间内的变化。UIView类做了动画展现的大部分工作,但是你仍然需要声明哪种属性改变的时候,你需要动画效果。有两种不同的类型来初始化动画
下面的UIView属性支持动画:
frame,bounds,center,transform,alpha,backgroundColor,contentStretch
在iOS 4之后,使用block-based动画方法(推荐使用)
使用 开始/提交方式(begin/commit)

3、管理视图的层次结构

superview属性:
subviews属性:
window属性:
-addSubview方法
-bringSubviewToFront:(UIView *)veiw方法,将view视图移到层次结构的最顶端,使得其得以展示
-sendSubviewToBack:(UIView *)veiw方法,和上面方法正好相反
-removeFromSupview方法,
-insertSubview:(UIView *)view atIndex:(Interger)index方法
-insertSubview:(UIView *)view aboveSubview(UIView *)siblingView 方法
-insertSubview:(UIView *)view belowSubview(UIView *)siblingView 方法
-exchangeSubviewAtIndex:(NSInteger)index1 withSubviewAtIndex:(NSInteger)index2方法
-isDescendantOfView:(UIView *)view方法,判断view是不是指定视图的子视图

4、子视图的布局(layout)

-layoutSubviews方法,这个方法,默认没有做任何事情,需要子类进行重写
-setNeedsLayout方法
-layoutIfNeeded方法,立即对子视图进行布局

5、画/更新视图

-drawRect:(CGRect)rect方法
-setNeedsDisplay
-setNeedsDisplayInRect:(CGRect)invalidRect方法

6、以块展现动画的方式(animating views with block)

+ animateWithDuration:delay:options:animations:completion:
+ animateWithDuration:animations:completion:
+ animateWithDuration:animations:
+ transitionWithView:duration:options:animations:completion:

+ transitionFromView:toView:duration:options:completion:

7、在视图和坐标系统之间转换

-convertPoint:toView     转换一个点从接收者坐标系到给定的视图坐标系 返回值:基于视图的坐标系转换过的点 
-convetPoint:fromView  把一个点从一个坐标系转换到接收者的坐标系     返回值:一个转换到接收者坐标系的点 
-convertRect:toView      转换接收者坐标系中的矩形到其他视图             返回值:一个转换过的矩形
-convertRect:fromView  转换一个矩形从其他视图坐标系到接收者坐标系。返回值:转换过的矩形

8、跟踪视图相关的改变

-didAddSubview:         告诉视图当子视图已经添加      (被子类重写用来执行额外的命令当子视图添加到接收者。这个方法被addSubview调用 )
-willRemoveSubview:
-willMoveToSuperview
-didMoveToSuperview       通知接收者父视图已经改变(nil是允许的)      (默认不做任何事情;子类可以重写这方法来作为特定的实现 
-willMoveToWindow:
-didMoveToWindow          通知接收者它已经给添加到窗口中       (默认实现不做任何事情;子类可以重写这个方法来做特殊的实现-----窗口的属性有可能是nil当这个方法调用的时候,这表明接收者并不属于当然任何一个窗口。这个只发生在接收者从它的父视图上移除或者接收者添加到父视图中而不是添加到window中。重写这个方法可以用来选择忽略一些他们不关心的对象 
阅读(566) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~