UI控件笔记(一):UI之UIView的属性

一、屏幕各部分尺寸

1、状态栏高度20

2、导航条高度44

3、屏幕宽度320

4、iphone4之前屏幕高度480

5、iphone5之后屏幕高度568


二、UI窗口程序解释


UIWindowUIView的一个子类,作用就是给一个IOS应用提供一个窗口,所以它是一种特殊的UIView


今天self.window就是我们的窗口,也将作为我们的所有视图的父视图


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

    // Override point for customization after application launch.

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

    self.window.backgroundColor = [UIColor whiteColor];

    

    1、确定屏幕上的某一个点,这是一个结构体,里面储存了一个点的坐标(xy

    CGPoint point = CGPointMake(0, 0);

    

    2、确定一个矩形的大小,这是一个结构体,里面储存了一个矩形的宽高(widthheight

    CGSize size = CGSizeMake(100, 100);

    

    3、做一个rect,这是一个结构体,里面存了一个view的左上角坐标和宽高

    CGRect rect = CGRectMake(0, 0, 100, 100);

    

    4、第一个UI视图UIView

    UIView *firstView = [[UIView alloc] initWithFrame:rect];//用一个CGRect矩形来初始化一个UIView的对象,这样就明确了这个UIView对象的位置和尺寸

    

    5、把一个view添加到他的父视图上

    [self.window addSubview:firstView];//用父视图调用方法,参数是要添加的子视图当把一个子视图添加到父视图的时候,这个子视图的引用计数会自动+1

    

    [firstView release];//一般,把一个子视图添加到父视图后,立刻对子视图执行release-1操作,这样这个子视图的手动引用计数就变成0了,子视图还剩下一个父视图中的自动的引用计数1

    

    6UIView的属性们

    6.1、背景颜色

    firstView.backgroundColor = [UIColor redColor];//使用[UIColor someColor]的方法来设置一个颜色

    

    6.2、透明度

    firstView.alpha = 0.5;//透明度在0-1之间,1为完全不透明,0为完全透明(隐藏),数越大越不透明

    

    注意:如果父视图是半透明的,那么父视图上的子视图也是半透明的,透明度和父视图一样

    

    6.3、中心点

    firstView.center = CGPointMake(160, 284);

    //center属性是设置子视图相对于父视图的中点位置

    

    6.4、隐藏属性

    firstView.hidden = NO;//yes为隐藏,no为显示

    

    6.5、边界截取

    UIView *secondView = [[UIView alloc] initWithFrame:CGRectMake(10, 10, 150, 150)];

    secondView.backgroundColor = [UIColor greenColor];

    [firstView addSubview:secondView];

    [secondView release];

    

    注意:父视图来调用这个属性,它上面的子视图被影响


    firstView.clipsToBounds = YES;//yes不超,no

    

    6.6boundsframe

    NSLog(@"%f,%f,%f,%f",firstView.frame.origin.x,firstView.frame.origin.y,firstView.frame.size.width,firstView.frame.size.height);

    NSLog(@"%f,%f,%f,%f",firstView.bounds.origin.x,firstView.bounds.origin.y,firstView.bounds.size.width,firstView.bounds.size.height);


    无论frame还是bounds都是一个矩形结构体,都有xy、宽、高四个值,而且同样一个视图不论是frame还是bounds宽和高都一样

    差别:bounds没有相对位置,指的就是自己这个框,所以是00xy

         frame是相对于父视图的,所以xy表示了这个视图左上角相对于父视图左上角的偏移量

    

    注意:boundsxy永远是0

    

    6.7tag,表示一个view的编号

    firstView.tag = 4000;//为第一个viewtag赋值为4000

    secondView.tag = 4001;//为第二个viewtag赋值为4001

    

    6.8、通过tag找到特定的视图,该视图是什么类的,就用什么类来接收

    UIView *tempFirstView = [self.window viewWithTag:4000];//用父视图来调用,参数是一个tag值,返回值就是这个tag值所对应的那个视图

    NSLog(@"%f,%f",tempFirstView.alpha,tempFirstView.frame.size.width);

    

    //请找到secondView,通过tag

    

    注意:同一个类中,tag值不能重复

    

    6.9、找到一个父视图上面的所有子视图

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

    thirdView.backgroundColor = [UIColor orangeColor];

    [self.window addSubview:thirdView];

    [thirdView release];

    

    NSArray *windowSubViewArr = [self.window subviews];//用父视图调用subviews方法,可以得到这个父视图上的所有子视图,存成一个数组

    NSLog(@"%@",windowSubViewArr);

    //遍历子视图

    for(id tempView in windowSubViewArr)

    {

        if(((UIView*)tempView).tag == 4000)//如果循环中找到的视图的tag等于4000

        {

            ((UIView*)tempView).backgroundColor = [UIColor blueColor];//tag等于4000的视图改成蓝色

        }

    }

    

    6.10、切换一个父视图上子视图的层次

    UIView *fourthView = [[UIView alloc] initWithFrame:CGRectMake(50, 64, 220, 350)];

    fourthView.backgroundColor = [UIColor grayColor];

    [self.window addSubview:fourthView];

    [fourthView release];

    

    6.10.1、把下面层次的view挪到上面来

    [self.window bringSubviewToFront:firstView];//把被fourth盖住的firstView挪到前面来

    

    6.10.2、把上面的view挪到下面去

    [self.window sendSubviewToBack:firstView];//把前面的first挪到后面去

    

    6.11、把子视图从父视图移除,该子视图的引用计数会自动-1

    [fourthView removeFromSuperview];

    

    6.12、另外一种颜色

    //203 35 117

    self.window.backgroundColor = [UIColor colorWithRed:203/255.0 green:35/255.0 blue:117/255.0 alpha:1];//前三个参数都是小于1的浮点型,要用我们获得的RGB颜色值与255.0进行相除

    

    [self.window makeKeyAndVisible];//显示window上的内容,永远也不要在这行下面写关于UI的内容,因为下面写的UI都无法被看到

    

    return YES;

}



三、棋盘格式输出语句

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

    {

        UIView *view = [[UIView alloc] initWithFrame:CGRectMake(i%8*40, 50+i/8*40, 40, 40)];//x是初始值+每次的变化,y也是初始值+每次的变化,x每过4次变回初始值,y每过四次加一次高度

        view.backgroundColor = [UIColor brownColor];

        [self.window addSubview:view];

        view.tag = 4000+i;

        [view release];

        

        if((i%8+i/8)%2 == 0)//一个格子的xy的和是奇数还是偶数

        {

            view.backgroundColor = [UIColor whiteColor];

        }

    }

    //循环写的布局,xi%一行视图个数*(每两个视图的间隔),yi/一行的个数*(每两个视图的间隔)


四、每行是随机颜色语句

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

    {

        UIView *view = [[UIView alloc] initWithFrame:CGRectMake(0, i, 320, 1)];

        view.backgroundColor = [UIColor colorWithRed:arc4random()%255/255.0 green:arc4random()%255/255.0 blue:arc4random()%255/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、付费专栏及课程。

余额充值