iOS视图层次结构,继承的关系

来源:互联网 发布:dpp软件最新版 编辑:程序博客网 时间:2024/05/22 06:17

1.什么是UIView?

UIView表示屏幕上的一块矩形区域。

2.UIView的功能?

1)管理矩形区域里的内容

2)处理矩形区域中的事件

3)子视图的管理

4)实现动画,UIView的子类也具有这些功能


3.UIView 继承自UIResponder,在上层是NSObject

子类有:UIWindow,UILabel,UIPickerView ,UITabBar,UIToolBar,UIImageView、UIProgressView等等

               UIControl下面还有一些控制类的组件:UIButton、UIDatePicker、UIPageControl、UITextField、

4.三个结构体: CGPoint 、CGSize、CGFloat

1).CGPoint

struct CGPoint{

   CGFloat x;

   CGFloat y;

};

typeof struct CGPoint CGPoint; C语言语法


2)CGSize 

struct CGSize{

  CGFloat width;

  CGFloat height;

};

typedef struct CGSize CGSize;


3)CGRect

struct CGRect{

    CGPoint origin; //相对父视图

    CGSize size;

};

typeded struct CGRect CGRect;


5.视图最基本的属性:

frame、center 都是相对于父视图的,bounds 是相对于自身的

frame 是CGRect frame 的orgin 是相对于父视图的左上角原点(0,0)的位置,改变frame 会改变center

center 是CGPoint 指的就是整个视图的在中心点,改变视图的center也会改变frame

bounds 是CGRect 是告诉子视图本视图的原点位置(通俗说的是,子视图的frame的origin与父视图的bounds的origin的差,就是子视图相对于父视图左上角的位置,如果结果为负,则子视图在父视图外)

通过addSubview:这个方法添加子类,不管谁添加它,只要越晚添加,视图就在月上层,移除父视图也会把它的自视图移除


6)几个基本界面元素: window (窗口)、view 视图


1.UIView

1)初始化方法: UIView *view = [[UIView alloc] initWithFrame:CGRectMake(0,0,200,100)];


2.UIWindow

UIWindow 继承自UIView。


3)UIScreen类代表了屏幕,通过这个类我们可以获取一些想要的数据

CGRect screenBounds = [ [UIScreen mainScreen]bounds];   //带有状态栏的Rect

CGRect viewBounds =  [ [UIScreen mainScreen]applicationFrame];    //不包含状态栏的Rect


4)UIView的方法

一个UIView里面可以包含许多的Subview (其他的UIView)而这些Subview彼此之间是有所谓的阶层关系,这点有点类似绘图软体中的图层的概念。

1.首先是大家最常使用的新增和移除Subview

[Subview removeFromSuperview];

[UIView addSubview:Subview]; 

2.在UIView中将Subview往前或完后移动一个图层,往前移动会覆盖住较厚层的Subview,而往后移动则会被较上层的Subview所覆盖

[UIView bringSubviewToFont:Subview]; 

[UIView sendSubviewToBack:Subview];

3.在UIView中使用索引Index交换两的Subview彼此的图层层级

[UIView exchangeSubviewAtIndex:indexA withSubviewAtIndex:indexB]; //交换两个图层

4.使用Suubview的变数名称取得它在UIView中的索引值(Index)

NSInteger index = [[UIView subviews]indexOfObject:Subview名称]; //取得index

5.替Subview加上NSInteger 的 Tag好让之后它们分辨彼此

[Subview setTag:NSInteger]; //加上标记

[UIView viewWithTag:NSInteger]; // 通过标记得到view 返回值为UIView

6.最后是取得UIView中所有的Subview,呼叫此方法会传回一个NSArray,并以由后往前的顺序列出这些Subview

[UIView subviews];

7.交互属性(BOOL): userInteractionEnabled

1)多数视图默认为YES,UIImageView的这个属性默认为NO










原创粉丝点击