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

对UIView的总结

2015-09-15 22:06 375 查看
self.window = [[UIWindow alloc]initWithFrame:[UIScreen mainScreen].bounds];
UIView *view = [[UIView alloc]initWithFrame:CGRectMake(10, 50, 100, 100)];//如果没有addsubview 不会显示在它的父视图上
#pragma mark-----------------设置背景颜色---
view.backgroundColor = [UIColor redColor];
#pragma mark-----------------设置tag值-------
view.tag = View1;//打印tag值 tag是视图的唯一标记
#pragma mark-----------------设置透明图-------
view.alpha = 0.8;//alpha是完全透明的时候也不会接收任何事件
#pragma mark-----------------设置中心点-------
view.center = CGPointMake(200, 300);//中心点 是相对于它的父视图来说的 怎样计算中心点:(X=x+宽/2,Y=y+高/2) 如果改变中心点得位置 视图的位置也随之改变 以后写动画的时候可能会用到中心点 尝试把视图放在屏幕的中心
view.center = self.window.center//把视图放在屏幕的中心
view.center = CGPointMake([UIScreen mainScreen].bounds.size.width/2, CGRectGetHeight([UIScreen mainScreen].bounds)/2);//尽量用后一种方法写 代码规范 其中包含两种方法把视图移动到屏幕的中心
view.center= CGPointMake([UIScreen mainScreen].bounds.size.width/2,[UIScreen mainScreen].bounds.size.height/2);//其中的一种
view.center = CGPointMake(CGRectGetWidth([UIScreen mainScreen].bounds)/2, CGRectGetHeight([UIScreen mainScreen].bounds)/2);//这是其中的另一种方法
[self.window addSubview:view];
NSLog(@"%ld",view.tag);//输出tag值
#pragma mark-----------------设置隐藏---------
UIView *vvv = [self.window viewWithTag:11];
vvv.hidden = NO;//hidden是YES的时候 也不会接收任何事件
#pragma mark---------------图层之间的关系-- UIView *bgview = [[UIView
alloc]initWithFrame:CGRectMake(100,
100, 200,
200)];
bgview.tag = 200;
bgview.backgroundColor = [UIColor greenColor];
[self.window addSubview:bgview];
UIView *view = [[UIView alloc]initWithFrame:CGRectMake(150, 150, 200, 200)];
view.backgroundColor = [UIColor redColor];
// 裁切边界 (把超出得部分剪裁掉)
[self.window addSubview:view];
#pragma mark---------------让视图动起来
// [self performSelector:@selector(run) withObject:nil afterDelay:2];// 延时
// [NSTimer scheduledTimerWithTimeInterval:1 target:self selector:@selector(run) userInfo:nil repeats:YES];//定时器
要定义方法:
-(void)run
{
UIView *bgView = [self.window viewWithTag:200];
bgView.center = CGPointMake(100, 100);
int x = arc4random()%300;
int y = arc4random()%600;
bgView.center = CGPointMake(x, y);

}
#pragma mark---------------移除视图的方法
//removeFromSubview 从父视图 移除视图
[view removeFromSuperview];
[bgview removeFromSuperview];
// 总结: 子视图依赖于父视图
// 如果父视图位置发生改变 子视图的位置也会发生改变 因为frame是根据他的父视图来定义位置信息的
// 如果移除父视图 父视图上面的所有子视图也都会被移除
#pragma mark---------------把视图放到另一个视图上面
[self.window bringSubviewToFront:bgview];//操作两个视图的图层关系时 两个图层必须在同一个父视图上 如果两个视图不是同一个父视图 它们两个就没有任何关系
bringSubviewToFront是把某个视图放到另一个视图的最上面
#pragma mark---------------把视图放到另一个视图下面
[self.window sendSubviewToBack:bgview];
UIView *view1 = [[UIView alloc]initWithFrame:CGRectMake(200, 200, 200, 200)];
view1.backgroundColor = [UIColor blueColor];
[self.window addSubview:view1];
#pragma mark---------------把一个子视图放到另一个子视图底下
[self.window insertSubview:view1 belowSubview:view];//方法1
[self.window insertSubview:view aboveSubview:view1];
#pragma mark--------------交换父视图上面的两个视图
[self.window exchangeSubviewAtIndex:0 withSubviewAtIndex:2];//咋们往同一个父视图上添加视图的时候 系统会自动帮咋们记录一个INdex 只要添加一个视图就会增加1 从0开始
#pragma mark--------------插入一个视图到另一个位置

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

#pragma mark--------------作业1:做霓虹灯
#pragma mark--------------作业2:做登录页面

[self.window makeKeyAndVisible];
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: