UIView

来源:互联网 发布:淘宝福袋怎么设置 编辑:程序博客网 时间:2024/05/23 12:41
//应用程序的入口部分,当应用程序加载时会触发此方法;想要显示什么内容,就写在这个方法里;

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


//创建一个与当前设备屏幕尺寸大小一致的UIWindow窗口对象,用来显示视图;
    self.window = [[[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]]autorelease];

//给window对象设置颜色,UIColor 颜色类,为控件提供颜色  类方法 类名调用  UIColor
    self.window.backgroundColor = [UIColor whiteColor];

//让当前window窗口称为应用程序的主窗口,也就是显示给用户;
    [self.window makeKeyAndVisible];

 

//UIView 视图类 所有能够看的到的矩形视图,都是UIView
    //如果想确定一个矩形,需要给定此矩形视图的位置和大小

     CGRect  ----- CGRectMake(x,y,w,h);设置视图的位置和大小;
     CGSize ------- CGSizeMake(w,h);//设置视图的大小;
     CGPoint ------ CGPointMake(x,y);设置视图的位置;
     屏幕尺寸
           3.5寸        320 * 480
           4寸          320 * 568
           4.7寸        375 * 667
           5.5寸        414 * 736


     //1.创建对象,并且初始化;在创建对象的同时,给定该视图对象的大小和位置; frame 里的x y 坐标是相对于父视图而言的;
    UIView *redView = [[UIView alloc]initWithFrame:CGRectMake(50, 50, 200, 200)];

    //2.设置属性  设置视图为红色
    redView.backgroundColor = [UIColor redColor];

    //3.修改红色视图的bounds
    // redView.bounds = CGRectMake(50, 50, 200, 200);

    //4.center 中心点  NSStringFromCGPoint打印点坐标
    NSLog(@"center = %@",NSStringFromCGPoint(redView.center));

    //修改redView的中心点坐标
    //redView.center = CGPointMake(200, 200);


    //5.获取一个视图的父视图  superView属性 获取到当前视图对象的父视图
    NSLog(@"%@",redView.superview);

    //6.alpha 透明度  设置视图的透明度 默认是1  值范围 0.0 --- 1.0之间
    //redView.alpha = .5;
    blackView.alpha = .5;

    //7.隐藏  hidden 是否隐藏  是一个BOOL类型
    redView.hidden = NO;//默认为NO,不隐藏
    //blackView.hidden = YES;


 //几个UIView的常见属性:
     1.superView:获取当前的视图对象的父视图,一个视图,只能有一个父视图;

     2.subViews:获取视图的所有子视图,是一个数组,一个视图,可以有多个子视图;

     3.alpha:透明度   通过设置0.0 ---- 1.0之间的值改变视图的透明度;

     4.hidden:是否隐藏  默认为NO,是一个BOOL类型;

     5.backgroudColor:设置视图的背景颜色;


frame,bounds,center之间的区别和联系:
     frame:设置视图的位置和大小(包含origin和size两个结构体变量),origin里的成员x和y设置视图位置(距离父视图左上角的位置),size里的width和height设置视图大小;视图的位置取决于父视图的位置;

     center:获取视图本身的中心点坐标,坐标是相对于父视图的位置;

     frame改变,center改变;center改变,frame改变;

     bounds:是相对于自身而言坐标的位置,bounds(x,y)发生改变,视图大小不变,改变的是子视图的位置,自己本身位置不变;因为,子视图是相对于父视图的坐标原点的。如果该视图的大小发生改变,bounds里的x,y不变,则改变的是本身视图的位置,以自身视图中心点不变,来改变视图的大小;


    //视图的层级关系,视图的子视图是以添加的时间顺序,先添加的视图在下层,后添加的视图在上层;
    //改变视图的层级关系

    UIView *blueView = [[UIView alloc]initWithFrame:CGRectMake(60, 60, 200, 200)];
    blueView.backgroundColor = [UIColor blueColor];

    //1、指定某个位置,插入新的视图
    //[self.window insertSubview:blueView atIndex:1];

    //2.以一个视图为参照物,在其上面添加子视图
    //[self.window insertSubview:blueView aboveSubview:redView];

    //3.以一个视图为参照物,在其下面添加子视图
    [self.window insertSubview:blueView belowSubview:yellowView];

    //4.交换连个视图的层级位置,
    [self.window exchangeSubviewAtIndex:1 withSubviewAtIndex:3];//交换的是视图的层级位置,并没有改变各自视图的frame,也就是位置和大小不变;

    //5.将一个视图从其父视图上移除
    [blueView removeFromSuperview];

    //6.可以将视图提到视图层级的最上层

//[self.window bringSubviewToFront:redView];
   

  //7.将视图提到视图层级的最下层
    [self.window  sendSubviewToBack:greenView];


//定时器
    [NSTimer scheduledTimerWithTimeInterval:.2 target:self selector:@selector(handleChange) userInfo:nil repeats:YES];


- (void)handleChange{
    //首先,获取到黄色视图,通过tag值获取;使用viewWithTag
    UIView *changeView = (UIView *)[self.window viewWithTag:101];//(UIView *)强制类型转换
    //随机颜色
    changeView.backgroundColor = [UIColor colorWithRed:arc4random() % 256 / 255.0 green:arc4random() % 256 / 255.0 blue:arc4random() % 256 / 255.0 alpha:1];
}





  

1 0