码迷,mamicode.com
首页 > 其他好文 > 详细

UIView类的常用属性与方法

时间:2015-09-13 19:50:56      阅读:145      评论:0      收藏:0      [点我收藏+]

标签:

UIView表示屏幕上的一块矩形区域,它在App中占有绝对重要的地位,因为IOS中几乎所有可视化控件都是UIView的子类。负责渲染区域的内容,并且响应该区域内发生的触摸事件。

UIView的功能:1.管理矩形区域里的内容2.处理矩形区域中的事件3.子视图的管理 4.还能实现动画          

UIView的子类也具有这些功能。

 1.UIView中的三个结构体CGPoint、CGSize、CGRect

1.  CGPoint//点结构体
1  struct CGPoint {  
2    CGFloat x;  
3    CGFloat y;  
4  };  typedef struct CGPoint CGPoint;

 

2.CGSize//宽高结构体
1  struct CGSize {  
2    CGFloat width;  
3    CGFloat height;  
4  };  typedef struct CGSize CGSize;

3.CGRect//通过起点和宽高描述一个矩形

1 struct CGRect {  
2   CGPoint origin;  //偏移是相对父视图的  
3   CGSize size;  
4 };  typedef struct CGRect CGRect;  
 
这三个结构体均在一个头文件里:CGGeometry.h
2.UIView的常用属性
1.
@property(nonatomic) NSInteger tag;//标签
用来给UIView以及它的子类的对象一个唯一的标识,可以在原方法外通过已经定义的tag调用创建的类的对象,默认是0。
例如:
 1 - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
 2         CGRect rect=[UIScreen mainScreen].bounds;//返回物理屏幕大小的CGRect
 3         self.window=[[UIWindow alloc]initWithFrame:rect];//设置窗口大小
 4         UIView *view=[[UIView alloc]initWithFrame:rect];//创建视图
 5         view.tag=666;//给视图设置一个tag
 6         return YES;
 7     }
 8     -(void)test{
 9         UIView *view=[self.window viewWithTag:666];//在其他方法中通过tag调用该对象
10   }

2.

@property(nonatomic,getter=isUserInteractionEnabled) BOOL userInteractionEnabled; //用户交互开启

一个布尔类型的属性,用来设置用户交互。默认是YES。如果设置成NO,用户事件(触摸,键入)会被无视,并且从事件队列中移除。

3.
@property(nonatomic,readonly,retain)                 CALayer  *layer;              //图层
返回视图的图层,将总是返回一个非空值,视图是图层的代理。
4.
@property(nonatomic) CGRect            frame;//框架

一个结构体类型的属性,里面包含视图的起点CGPoint和视图的大小CGSize。

注:如果不是明确的改变,使用bounds/center不使用frame,如果bounds的范围是零散的,center可能是分开的部分。

5.

@property(nonatomic) CGRect            bounds; //界限

结构体类型的属性, 默认Bounds的origin(起点)是(0,0),size(大小)是frame的大小。

*************************************************************************************************************************************************************************************

frame和bound的区别:

首先看一下公认的代码:

1 -(CGRect)frame{
2     return CGRectMake(self.frame.origin.x,self.frame.origin.y,self.frame.size.width,self.frame.size.height);
3 }
4 -(CGRect)bounds{
5     return CGRectMake(0,0,self.frame.size.width,self.frame.size.height);
6 }

很明显,bounds的原点是(0,0)点(就是view本身的坐标系统,默认永远都是0,0点,除非认为setbounds),而frame的原点却是任意的(相对于父视图中的坐标位置)。

 frame: 该view在父view坐标系统中的位置和大小。(参照点是父视图的坐标系统)
 bounds:该view在本地坐标系统中的位置和大小。(参照点是本地坐标系统,就相当于View自己的坐标系统,以0,0点为起点)
 center:该view的中心点在父view坐标系统中的位置和大小。(参照点是父视图的坐标系统)

*************************************************************************************************************************************************************************************

6.

@property(nonatomic) CGPoint           center;  //中心

中心是相对于父视图的中心

UIView类的常用属性与方法

标签:

原文地址:http://www.cnblogs.com/axzhang/p/4805317.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!