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

IOS-UI-视图控件UIview

2015-09-10 20:48 357 查看
只要是视图控件 都需要有自己的位置

//初始化一个window

self.window =[[UIWindow alloc]initWithFrame:[UIScreen mainScreen].bounds];

//UIColor是所有颜色的 大总管(颜色类)

self.window.backgroundColor = [UIColor blackColor];
UIView * view1 = [[UIView alloc]initWithFrame:CGRectMake(50, 50, 50, 30)];


//backgroundColor背景色

view1.backgroundColor = [UIColor brownColor];


//alpha视图透明度属性,默认值是1,也就是完全不透明,透明度是0的时候,就不会在接受任何触发事件

view1.alpha=0.5;


//tag 类似于身份证号码, 可以通过tag 来找到相应的视图(依赖于父视图的,在它的父视图上 通过tag找到这个视图)

view1.tag = 100;


//addSubview 把View1贴到窗口上(父视图上)

[self.window addSubview:view1];


也可以通过for循环来创建视图

用for循环

for (int i=10; i<200; i++) {
UIView *view6=[[UIView alloc]initWithFrame:CGRectMake(10, 30, i, 30)];
view6.backgroundColor=[UIColor whiteColor];
[self.window addSubview:view6];
}


枚举:

struct CGRect {

CGPoint origin;是一个点(原点)起始点

CGSize size; size大小 尺寸 自身的大小 尺寸

};

如何确定视图的位置?

1、Frame 需要一个结构体(CGRect)

Frame是依据它的父视图 来确定自己的位置的

Frame是坐标体系(位置里面的一种) 它是相对于父视图或者硬件设备来获取自己的位置的,(它需要一个参考物来确定自己的位置)

2、bounds 是坐标体系(位置)里面的一种 相对自身来说 也就是 以自己为主 自己的周边范围

//bounds可以设置范围

view1.bounds =CGRectMake(0, 0, 200, 200);


//hidden 默认值是NO 控制 视图是否隐藏 如果是yes ,视图将会被隐藏

view1.hidden = NO ;

//makeKeyAndVisible 让窗口显示 并接收事件(初始化窗口必须要让窗口显示)

[self.window makeKeyAndVisible];


3、如何通过tag值找到视图

//viewWithTag通过这个方法 可以找到 对应tag的视图 在它的父视图上查找

UIView  *view = [self.window viewWithTag:100];


//现在这个View就是 咱们查找到得添加在self。window上的view1

UIView详解

UIView:UIView是视图,代表屏幕上的一个矩形区域。各种UI控件都属于View。不同的控件属于不同种类的视图,iOS中所能看到的内容都是UIView或则其子类

*/

//打印设备的bounds(设备的范围)
NSLog(@"宽%f",[UIScreen mainScreen].bounds.size.width);
NSLog(@"长%f",[UIScreen mainScreen].bounds.size.height);


//center 中心点 相对于父视图来说的(如果改变中心点得位置,视图的位置也会发生改变)

view.center = CGPointMake(200, 300);


设置成屏幕的中心

1)、

view.center =self.window.center;


2)、

view.center =CGPointMake([UIScreen mainScreen].bounds.size.width/2, [UIScreen mainScreen].bounds.size.height/2);

3)、3.获取屏幕的高和宽 除2得到屏幕的中心点

view.center = CGPointMake(CGRectGetWidth([UIScreen mainScreen].bounds)/2, CGRectGetHeight([UIScreen mainScreen].bounds)/2);


4)、hidden 是YES的时候,也不会接受任何事件

5)、层间关系:

UIView *bigview= [[UIView alloc]initWithFrame:CGRectMake(100, 100, 200, 200)];

bigview.tag=200;

bigview.backgroundColor=[UIColor yellowColor];

(1)、裁切边境(把超出的部分 剪切掉)

bigview.clipsToBounds=YES;


[self.window addSubview:bigview];

(2)

UIView *view1=[[UIView alloc]initWithFrame:CGRectMake(200, 200,200, 200)];

view1.backgroundColor=[UIColor whiteColor];

[self.window addSubview:view1];
//把哪个视图放在上面(操作两个视图的图层关系时, 两个图层 必须在同一个父视图上面)

//如果两个视图不是同一个父视图 那么他们两个就没有任何关系

1、把某个视图 放到父视图的最上面

[self.window bringSubviewToFront:bigview];

2、把一个视图放到 它相邻视图的最下面

[self.window sendSubviewToBack:bigview];


3、把一个子视图放到另一个子视图的下面

[self.window insertSubview:view1 belowSubview:view];


4、把一个子视图放到另一个子视图的上面面

[self.window insertSubview:view aboveSubview:view1];


5、交换 父视图上面的两个视图的位置

//咱们往同一个父视图上面 添加子视图的时候 系统会自动帮咱们记录一个index 只要添加一个子视图,就会增加1 从0开始

[self.window exchangeSubviewAtIndex:0 withSubviewAtIndex:2];


6、把一个视图插到哪个位置

[self.window insertSubview:view atIndex:2];


7、从父视图中 移除视图

[bigview removeFromSuperview];


总结:子视图 依赖于 父视图

如果父视图位置发生改变 子视图位置也会发生改变 因为 fram是根据它的父视图来定义位置信息的

如果移除父视图 父视图上面的所有的子视图 也都会 被移除
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: