IOS-UI-视图控件UIview

只要是视图控件 都需要有自己的位置
//初始化一个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是根据它的父视图来定义位置信息的
如果移除父视图 父视图上面的所有的子视图 也都会 被移除

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

ldl_csdn_ios

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值