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