UIView

UI第一天


UIViewTsets在XCode4.0中是没有的,它是用来做一些小测试的。

/*

 ios7与之前的ios版本的差别1

 屏幕可用区域:

 ios7320*480320*568

 ios6: 320*460320*548

 差别就在上面的状态条,7是可以用这段空间的,7之前,这段空间不能用。



方法:

 */

//这是程序启动的入口第一个方法

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions

{

    //第一件事儿就是实例化一个window,每一个应用都要基于一个window

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

    // Override point for customization after application launch.

    self.window.backgroundColor = [UIColor orangeColor];

    /*

      一个工程一般至少需要一个window,一般也只有一个,一个window是一个矩形。

     

     UIView是所有View的祖宗,所以其他的View都继承了UIView

     UIView也是一个矩形的区域,所有的新创建的View都要加载在一个父视图(父View)上。

     在这里self.window就作为整个应用的父视图存在。

    self.windowUIView什么关系?

     window也是UIView的一个子类,只不过是一个特殊的子类,专门用来当window的。

     

     */

    

    //实例化一个UIView,一个View创建好了要立刻调用init方法设置它的位置和大小。

    //使用initWithFrame:来设置一个view的位置和大小

    //参数是一个<#(CGRect)#>的结构体。XY、宽、高

    //xy是什么,是当前view的左上角,相对于他的父视图的左上角的xy的偏移量。

    //IOS4s设备 宽:320 高:480  5/5s设备:宽:320 高:568 状态条高度 :20

    //使用CGRectMake方法来设置一个rect的四个参数

    CGRect view1Rect  = CGRectMake(40, 40, 280, 440);

    UIView *view1 = [[UIView alloc] initWithFrame:view1Rect];

    //设置view的背景颜色bgcolor

    //使用[UIColor someColor]或者

    view1.backgroundColor = [UIColor greenColor];

    //吧做好的view1添加到父视图上

    //[父视图 addSubview:子试图]

    [self.window addSubview:view1];//add之后引用计数2,其中1alloc出来的,需要手动,另一个是add出来的,不用管。

    

    [view1 release];//添加完后立刻release。还剩下一个由父视图管理的引用计数。

    CGRect view2Rect = CGRectMake(0, 20, 320, 44);

    UIView *view2 = [[UIView alloc] initWithFrame:view2Rect];

    view2.backgroundColor = [UIColor brownColor];

    [self.window addSubview:view2];

    [view2 release];

    

    UIView *view3 = [[UIView alloc] initWithFrame:CGRectMake(0, 24, 80, 80)];

    view3.backgroundColor = [UIColor redColor];

    [view1 addSubview:view3];

    [view3 release];

    

    

    UIView *view4 = [[UIView alloc] initWithFrame:CGRectMake(200, 360, 80, 80)];

    view4.backgroundColor = [UIColor grayColor];

    [view1 addSubview:view4];

    [view4 release];

  /*********************************************************/

    UIView一些常用属性

    UIView *view5 = [[UIView alloc] init];

    //设置frame就是x,y,宽,高

    view5.frame = CGRectMake(0, 0, 320, 480);

    view5.backgroundColor = [UIColor whiteColor];

    [self.window addSubview:view5];

    [view5 release];

    

    

    UIView *afternoonView1 = [[UIView alloc] initWithFrame:CGRectMake(0, 20, 320, 44)];

    afternoonView1.backgroundColor = [UIColor redColor];

    [view5 addSubview:afternoonView1];

    [afternoonView1 release];

    

    UIView *afternoonView2 = [[UIView alloc ] initWithFrame:CGRectMake(0, 20, 320, 88)];

    afternoonView2.backgroundColor = [UIColor greenColor];

    [view5 addSubview:afternoonView2];

    [afternoonView2 release];

    透明度,他的值在01之间,是一个浮点型数字。

    afternoonView2.alpha = 1;

UIView *afternoonView3 = [[UIView alloc ] initWithFrame:CGRectMake(0, 20, 320, 44)];

    afternoonView3.backgroundColor = [UIColor blueColor];

    //用半透明的2来充当3的父视图

    [afternoonView2 addSubview:afternoonView3];

    [afternoonView3 release];

    //当父视图是半透明的时候,子试图也会变成半透明。

UIView *afternoonView4 = [[UIView alloc] initWithFrame:CGRectMake(0, 120, 320, 44)];

    afternoonView4.backgroundColor = [UIColor purpleColor];

    [view5 addSubview:afternoonView4];

    [afternoonView4 release];

    

    

    UIView *afternoonView5 =[[UIView alloc] initWithFrame:CGRectMake(10, 10, 300, 64)];

    afternoonView5.backgroundColor = [UIColor cyanColor];

    [afternoonView4 addSubview:afternoonView5 ];

    [afternoonView5 release];

    afternoonView4.clipsToBounds = YES;//出界不要,这个出界不要要设置在父视图上,影响子视图。

UIView *afternoonView6 = [[UIView alloc] initWithFrame:CGRectMake( 0, 200, 300, 44)];

    afternoonView6.backgroundColor = [UIColor blackColor];

    [view5 addSubview:afternoonView6];

    [afternoonView6 release];

    

    //一个View的中点属性,可以使用CGPointMake(160+40, 222-20)来设置这个中点,设置完成后,这个view就会根据重点的位置进行移动,但是不论如何变,他原来的宽和高不会变。

    afternoonView6.center = CGPointMake(160+40, 222-20);

//我们想要移动一个View还可以选择下面的方法,

    //view有一个属性叫frameframe有四个值,x,y,宽,高

    //改变这四个值,来移动view。甚至可以改宽高。

    afternoonView6.frame = CGRectMake(0, 200, 320, 44);

    //设置视图隐藏属性。

    afternoonView6.hidden = NO;

    //父视图与子试图的操作。得到所有子试图的数组

    NSLog(@"%@",[view5 subviews]);

    

    让一个父视图上面所有子试图中的一个放到父视图的最上层。

    [view5 bringSubviewToFront:afternoonView1];

    //将某个子视图一到最下层。

    [view5 sendSubviewToBack:afternoonView1];

    

    [afternoonView1 removeFromSuperview];//从父视图移除,他那个由父视图管理的引用计数这时自动减1.

   [afternoonView2 removeFromSuperview];//当父视图移除是,子试图一起移除。

  //  afternoonView6.frame = CGRectMake(100, 200, 20, 44);

UIView *view9 = [[UIView alloc] initWithFrame:CGRectMake(0, 20, 40, 40)];

    view9.backgroundColor = [UIColor yellowColor];

    [view5 addSubview: view9];

    [view9 release];

view9.hidden = YES;

    [view5 bringSubviewToFront:view5];

    view9.hidden = NO;

    

    [view5 sendSubviewToBack:view9];

    

    [view10 removeFromSuperview];

    [view9 removeFromSuperview];

    

    

    UIView *afternoonView13 = [[UIView alloc]initWithFrame:CGRectMake(0, 20, 320, 44)];

    afternoonView13.backgroundColor = [UIColor brownColor];

    [view5 addSubview:afternoonView13];

    [afternoonView13 release];

    //tag是一个整形数字,我们为一个view设置一个tag后,以后我们可以在任何时候通过这个tag值,在俯视图上面找到对应的view

    afternoonView13.tag = 4000;

    

    //通过viewWithTag可以找到后面数字对应的之前添加好了的view

    UIView *tempView = (UIView*)[view5 viewWithTag:4000];

    NSLog(@"%f",tempView.frame.origin.y);

    framebounds

    //frame    相对于父视图的x,y偏移量,以及子试图的宽和高

    //bounds   子试图相对自己的左上角的坐标,以及子试图的宽和高。

//framexy是相对父视图的,会依照实际情况有值,而boundsx,y永远是00

    //bounds就是我们这个子试图的边框{{00}{宽,高}}

    //frame是位置和大小{{x便偏移,y偏移},{宽,高}}

    

    UIView *afternoonView14 = [[UIView alloc]initWithFrame:CGRectMake(0, 70, 320, 44)];

    afternoonView14.backgroundColor = [UIColor redColor];

    [view5 addSubview:afternoonView14];

    [afternoonView14 release];

   //我要建两个view,我希望都与14重叠。


//不可行:

    UIView *afternoonView15 = [[UIView alloc]initWithFrame:afternoonView14.frame];

    afternoonView15.backgroundColor = [UIColor grayColor];

    [afternoonView14 addSubview:afternoonView15];

    [afternoonView15 release];



//可行:

    UIView *afternoonView16 = [[UIView alloc] initWithFrame:afternoonView14.bounds];

    afternoonView16.backgroundColor = [UIColor blueColor];

    [afternoonView14 addSubview:afternoonView16];

    [afternoonView16 release];


//典型案例之-----国际象棋棋盘样式

1.一次循环实现

for(int i=0;i<64;i++)

    {

         if(i%2==i/8%2)   //判断颜色的区分

         {

            UIView *view = [[UIView alloc]initWithFrame:CGRectMake(10+i%8*(300/8.0), i/8*30+((self.window.frame.size.height-240)/2), 300/8.0, 30)];

            view.backgroundColor = [UIColor colorWithRed:69/255.0 green:31/255.0 blue:29/255.0 alpha:1];

            [self.window addSubview:view];

            [view release];

         }else{

             //165 129 81

             UIView *view = [[UIView alloc]initWithFrame:CGRectMake(10+i%8*(300/8.0), i/8*30+((self.window.frame.size.height-240)/2), 300/8.0, 30)];

             view.backgroundColor = [UIColor colorWithRed:165/255.0 green:129/255.0 blue:81/255.0 alpha:1];

             [self.window addSubview:view];

             [view release];

         }

    }

    

    [self.window makeKeyAndVisible];

2.二次循环实现

for(int i =0;i<8;i++)

    {

        for(int j = 0;j<8;j++)

        {

            UIView *view = [[UIView alloc] initWithFrame:CGRectMake(10+j*(300/8.0),i*(300/8.0)+(self.window.frame.size.height-300)/2, 300/8.0, 300/8.0)];

            if((i+j)%2==0) //或者也可以写成(i%2 == j%2

                //73 31 29

            view.backgroundColor = [UIColor colorWithRed:73/255.0 green:31/255.0 blue:25/255.0 alpha:1];

            else

                //182 101 71

               view.backgroundColor = [UIColor colorWithRed:182/255.0 green:101/255.0 blue:71/255.0 alpha:1];

            [self.window addSubview:view];

            [view release];

        }

        

    }



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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值