UI第一讲UIView和UILabel

第一章
一.UIWidow
1.如何创建window
    在创建window的时候,需要制定window的大侠,通常window的大小(frame)与屏幕(UIScreen)大小一致.
    示例代码:
    self.window = [ [UIwindow alloc] initWithFrame:[ [UIScreen mainScreen] bounds] ];
二.UIView
1.什么是UIview
    view(视图):代表屏幕上的一个矩形区域,不同的空间代表不同种类的view.
2.如何创建View
    创建步骤:
        ①.开辟空间并初始化视图(初始化时,给出视图的位置和大小);
        ②.对试图做一些设置;
        ③.将视图添加到window上进行显示;
        ④.释放视图对象
3,试图创建代码:
    UIView *redView = [ [UIView alloc] initWithFram:CGRectMake(100,100,120,100)];
    redView,backgroundColor = [UIColor redColor] ;
    [self.window addSubvierw:redView];
    [redView release];
4.frame
    frame是view的重要属性是我们做视图布局的关键,他决定了视图的大小和位置.
    frame是一个结构体,包含两部分origin和size两部分.
    size也是一个结构体,同样包含两部分width和height;
    origin也是一个结构体,包含两部分x和y.
5.IOS坐标系
    iOS提供了用于布局的平面坐标系.左上角为坐标的原点.
    水平向右:为x的正方向.屏幕最左到最右可划分320等分.
    垂直向下:为y的正方向,屏幕最上到最下可划分480等份(3.5寸屏).
    坐标是以点作为依据的.
6.Center
    center(中心点)是个结构体包含两部分x和y.另center和frame有着密切的联系.
    center.x = frame.origin.x + frame.size.width / 2;
    center.y = frame.origin.y + frame.size.height / 2;
7.bounds
    bounds(边界)是一个CGRect的结构体变量
    当一个view设置bounds时,会把自己当成一个容器,定义自己的边界的大小以及左上角的初始坐标.

8.bounds、frame和center的关系

9.添加视图
    UIView中addSubview:方法可以添加子视图,对于同一个视图的所有子视图来讲,后添加的子视图会把已添加的子视图覆盖在下面.
    其他方法添加子视图:

方法名

描述

inseSubview:atIndex

在指定的index处插入子视图

insertSubview:aboveSubview

在指定的子视图上添加子视图

insertSubview:belowSubview

在指定的子视图下添加子视图

10.管理视图层次


方法名

描述

bringSubviewToFront

把指定视图移到最前面

sendSubviewToBack

把指定视图移到最后面

exchangeSubviewAtIndex:withSubviewAtIndex

交换两个指定索引位置的子视图

removeFromSubview

reciever从父视图上移除

11.视图的重要属性



代码:

<span style="font-size:18px;"> //UIWindow
    
    //UIScreen mainScreen].bounds 能够获取屏幕的尺寸
    //给谁加颜色就在谁后面加ba ckgroundColor,其中的颜色可以用便利构造器设置RGB值(如:colorWithRed:251/255.0 green:41/255.0 blue:61/255.0 alpha:1)

    self.window = [[UIWindow alloc]</span><pre name="code" class="objc"><span style="font-size:18px;">//    UIView
    //父视图和子视图(管理视图的层次)
    /*
    //父视图和子视图 (子视图的原点是以父视图原点而定,换句话说就是子视图是以父视图的bounds为参照的)
    UIView *view = [[UIView alloc]initWithFrame:CGRectMake(10, 10, 200, 200)];
    view.backgroundColor = [UIColor cyanColor];
    [self.window addSubview:view];
    
    UIView *view1 = [[UIView alloc]initWithFrame:CGRectMake(10, 10, 100, 100)];
    view1.backgroundColor = [UIColor redColor];
    
    [view addSubview:view1];
    
    UIView *view2 = [[UIView alloc]initWithFrame:CGRectMake(10, 10, 50, 50)];
    view2.backgroundColor = [UIColor blackColor];
    
    [view addSubview:view2];


    [view bringSubviewToFront:view1];
    [view bringSubviewToFront:view2];
    
    [view sendSubviewToBack:view2];
    [view sendSubviewToBack:view1];
    
    
    
    
    
    //把父视图上的某个子视图放到所有子视图的最上面
//    [self.window bringSubviewToFront:view1];
    
    //把父视图上的某个子视图放到所有子视图的最下面
//    [self.window sendSubviewToBack:view1];
    
    //交换两个子视图的层次关系(同一个父视图上的子视图)
    [view exchangeSubviewAtIndex:0 withSubviewAtIndex:1];
    [view exchangeSubviewAtIndex:1 withSubviewAtIndex:0];
    
    //从父视图上移除某个子视图
    [view2 removeFromSuperview];
    
    //hidden:隐藏视图
    view1.hidden = YES; //隐藏视图
    view1.hidden = NO;  //显示视图
    
    //alpha(透明度):从0-1,0的透明度最高,父视图设置了透明度,它上面的子视图就有了相同的透明度.
    view1.alpha = 0;
    view1.alpha = 1;

    
    view.alpha = 1;
    
    //superView(父视图):找到某个子视图的父视图,其返回值是一个UIView
    [view1 superview].backgroundColor = [UIColor grayColor];
    
    //subViews:找到某个父视图的所有子视图,该方法的返回值是一个数组
//    ((UIView *)([view subviews][0])).backgroundColor = [UIColor greenColor];
    
    //tag:在一个工程里tag的值是唯一的.(我们从101开始往后设置)
    view1.tag = 101;
    
    [view viewWithTag:101].backgroundColor = [UIColor orangeColor];
    */
   
    /*
    //往一个视图上添加子视图
    UIView *view1 = [[UIView alloc]initWithFrame:CGRectMake(100, 100, 100, 100)];
    view1.backgroundColor = [UIColor cyanColor];
    [self.window addSubview:view1];
    
    UIView *view2 = [[UIView alloc]initWithFrame:CGRectMake(100, 100, 50, 50)];
    view2.backgroundColor = [UIColor blackColor];
    [self.window addSubview:view2];
    
    UIView *view3 = [[UIView alloc] initWithFrame:CGRectMake(100, 100, 80, 80)];
    view3.backgroundColor = [UIColor redColor];
    [self.window addSubview:view3];
    
    //调整子视图的位置
//    [self.window insertSubview:view3 aboveSubview:view1];
    
    //Index从零开始,占位置
//    [self.window insertSubview:view3 atIndex:1];
    
    [self.window insertSubview:view3 belowSubview:view2];
//    NSLog(@"%f %f",view1.center.x,view1.center.y);
    
    
    //frame和bounds
    NSLog(@"f %f",view1.frame.origin.x);
    NSLog(@"b %f",view1.bounds.origin.x);
    
    NSLog(@"f %f",view1.frame.origin.y);
    NSLog(@"b %f",view1.bounds.origin.y);
    
    NSLog(@"f %f",view1.frame.size.width);
    NSLog(@"b %f",view1.bounds.size.width);
    
    NSLog(@"f %f",view1.frame.size.height);
    NSLog(@"b %f",view1.bounds.size.height);
    
    */
    //创建一个view视图
    /*
    //以下三步就是创建一个view并显示的代码
//    UIView *view = [[UIView alloc]initWithFrame:CGRectMake(10, 100, 100, 100)];
//    view.backgroundColor = [UIColor cyanColor];
//    //添加子视图
//    [self.window addSubview:view];
    
    //创建四个视图 两行两列并对齐
    
    //view1
    UIView *view1 = [[UIView alloc]initWithFrame:CGRectMake(10, 100, 60, 30)];
    view1.backgroundColor = [UIColor redColor];
    [self.window addSubview:view1];
    
    //view2
    UIView *view2 = [[UIView alloc]initWithFrame:CGRectMake(view1.frame.origin.x + view1.frame.size.width + SPACE,view1.frame.origin.y, view1.frame.size.width,view1.frame.size.height)];
    view2.backgroundColor = [UIColor grayColor];
    [self.window addSubview:view2];
    
    //view3
    UIView *view3 = [[UIView alloc]initWithFrame:CGRectMake(view1.frame.origin.x, view1.frame.origin.y + view1.frame.size.height + SPACE1, view1.frame.size.width, view1.frame.size.height)];
    view3.backgroundColor = [UIColor purpleColor];
    [self.window addSubview:view3 ];
    
    //view4
    UIView *view4 = [[UIView alloc]initWithFrame:CGRectMake(view2.frame.origin.x, 200, 60, 30)];
    view4.backgroundColor = [UIColor cyanColor];
    [self.window addSubview:view4];
    
    //view5
    UIView *view5 = [[UIView alloc ]initWithFrame:CGRectMake(10, 200, 60, 30)];
    view5.backgroundColor = [UIColor magentaColor];
    [self.window addSubview:view5];
    
    //view6
    UIView *view6 = [[UIView alloc]initWithFrame:CGRectMake(100, 250, 60, 30)];
    view6.backgroundColor = [UIColor blueColor];
    [self.window addSubview:view6];
    
    //view7
    UIView *view7 = [[UIView alloc]initWithFrame:CGRectMake(100, 300, 60, 30)];
    view7.backgroundColor = [UIColor brownColor];
    [self.window addSubview:view7];
    
    //view8
    UIView *view8 = [[UIView alloc]initWithFrame:CGRectMake(10, 300, 60, 30)];
    view8.backgroundColor = [UIColor blueColor];
    [self.window addSubview:view8];
    
    //frame是视图的属性 frame含有origin和size属性,origin含有x和y两个属性,size含有width和height两个属性
    
</span>

initWithFrame:[UIScreen mainScreen].bounds];
<span style="font-size:18px;">//    UILabel:用于显示文本
    /*
    UILabel *label = [[UILabel alloc]initWithFrame:CGRectMake(100, 100,200, 300)];
    label.backgroundColor = [UIColor cyanColor];
    label.text = @"这玩意有毒啊hadisujklmoiaodkls;qmopasdl;fqraosdlfjamsdkofjaiwoerjmon";
    label.font = [UIFont systemFontOfSize:20];//设置字体,系统默认字体13
    label.textColor = [UIColor redColor];
    label.numberOfLines = 0;//当numberOfLines为0时会自动换行
    label.lineBreakMode = NSLineBreakByWordWrapping ;
    //设置阴影的两个方法(shadowColor设置阴影的颜色,shadowOffset设置阴影的偏移量)
    label.shadowColor = [UIColor blueColor];
    label.shadowOffset = CGSizeMake(0, 0);
    //对齐方式(有三种:左对齐、右对齐和居中对齐)
    label.textAlignment = NSTextAlignmentCenter;
//    label.hidden = YES;
    //设置透明度
    label.alpha = 1;
    [self.window addSubview:label];
    
    UIView *view = [[UIView alloc]initWithFrame:CGRectMake(120, 120,200, 300)];
    view.backgroundColor = [UIColor blueColor];
    view.alpha = 0.5;
    [self.window addSubview: view];
*/</span>

self.window.backgroundColor = [UIColor whiteColor]; [self.window makeKeyAndVisible];

 

 



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值