UI基础

来源:互联网 发布:云计算研发工程师 编辑:程序博客网 时间:2024/05/08 07:38

UIKit框架 ->包含了所有可以看的见得视图控件

 

   ***UIKit框架其中UIWindow:窗口控件 -> ios应用程序里面只且只有一个主窗口***   4,是用来显示承载可看到的控件的容器(因为所有的控件都是一层层添加到窗口上的)

 UIWindow的初始化:initWithFrame构造方法:在创建一个对象的时候,同时给它一个Frame

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

 

 UIView:?是一个视图,类似于NSObject,是所有视图类的父类。UIWindow也是视图。

 

 

 /Users/scjy/Desktop/UI - NO.1 霓虹灯/UI - NO.1 霓虹灯/ViewController.m

      UIKit框架其中UIView

*/

    

//    initWithFrame构造方法:在创建一个对象的时候,同时给它一个Frame ,获取屏幕边境范围:[UIScreen mainScreen].bounds ,

//    ⭐️⭐️⭐️⭐️⭐️⭐️⭐️self.window.h中可见???⭐️⭐️⭐️⭐️⭐️⭐️

    self.window = [[UIWindowalloc]initWithFrame:[UIScreenmainScreen].bounds];

    

    ViewController *vc = [[ViewControlleralloc]init];

//    根视图控制器

    self.window.rootViewController = vc;

//    此处设置父视图背景颜色

    self.window.backgroundColor = [UIColorwhiteColor];


//   ⭐️⭐️⭐️⭐️⭐️⭐️window显示的方法:makeKeyAndVisible让窗口是主窗口并且是显示在手机屏幕上,必须自己创建窗口,必须添加根视图控制器

    [self.windowmakeKeyAndVisible];

    

    

/*

//    1.视图的创建,视图有很多类,UIView是其中一个

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

//    视图的位置自身大小

//    ⭐️⭐️frame -是视图的属性,位置及长宽高⭐️⭐️

//    屏幕上是由很多像素点组成

//    视图的起始位置是:origin,窗口的起始位置是:左上角(即坐标为0,0),所有子视图都是根据 origin(原点)来定义起始位置的

//    size:尺寸是视图本身的大小

//    CGRect:结构体方式赋值太麻烦了,直接用CGRectMake方法

    view.frame = CGRectMake(0,0, 200, 200);

    

//    视图的背景颜色设置,UIColor自带表示专门的颜色类,创建的一种对象就是颜色

//    UIColor *bule = [UIColor blueColor];

    view.backgroundColor = [UIColor blueColor];

    

//  设置视图透明度:0.0(完全透明【所有属性方法,类似于被禁用即事件无响应)1.0(不透明)

    view.alpha = 0.414;

    

//    hidden:隐藏的意思 , BOOL类型,只有YES隐藏,NO显示即 hidden 的默认值

//    view.hidden = YES;//view被隐藏

//    isHidden相当于getter方法

    NSLog(@"%d",view.isHidden);

    

//    图层之间的关系

//    视图是一层层叠加到一个父视图上的,子视图是被添加到父视图这个载体上的,父视图位置改变,子视图也跟着改变

    

//    ⭐️⭐️⭐️⭐️⭐️添加视图到父视图⭐️⭐️⭐️⭐️⭐️如果没有此方法,创建的视图将不会被显示在屏幕上

//    公式:[父视图 addSubview:要添加的视图];

    [self.window addSubview:view];

    

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

    view1.frame = CGRectMake(210, 210, 100, 100);

    view1.backgroundColor = [UIColor redColor];

    

    [self.window addSubview:view1];


//    UIWindow的初始化:initWithFrame构造方法:在创建一个对象的时候,同时给它一个Frame以及原点和长宽,原点是子视图的左上方

    UIView *view1 = [[UIView alloc]initWithFrame:CGRectMake(100, 100, 200, 200)];

    view1.backgroundColor = [UIColor cyanColor];

    [self.window addSubview:view1];

    

    UIView *view2 = [[UIView alloc]initWithFrame:CGRectMake(0, 0, 100, 100)];

    view2.backgroundColor = [UIColor orangeColor];

//    frame:是根据他的父视图来定义这个视图自身位置的原点,定义frame不能超出父视图的范围,超出部分将不再接收任何响应事件

    [view1 addSubview:view2];

    

//    center 中心点对角线的交点

//    center.x = /2 +原点的x ; center.y =/2 +原点的y,系统默认知道中心点

    NSLog(@"%.1f",view1.center.x);

    NSLog(@"%.1f",view1.center.y);

//  center 可改变子视图的位置,但不能在创建视图时使用

    view1.center = CGPointMake(150, 200);

//    bounds 相对于自身的位置,忽略原点,原点永远是(00),可获得视图自身的边境范围,只是用来获得宽和高的

    

    NSLog(@"%.2f",view1.bounds.origin.y);

    NSLog(@"%.2f",view1.bounds.size.height);

    

//    定时器:隔多长时间去做什么事

//    NSTimer 定时器的类

//    定时器初始化的方法

//    Interval:表示时间间隔,单位是秒 target:让谁去执行 selector:方法选择器,用来选择一个方法执行 userInfo:需要传的值 repeats:重复次数

    [NSTimer scheduledTimerWithTimeInterval:1 target:self selector:@selector(start) userInfo:nil repeats:YES];

 */


    UIView *view1 = [[UIViewalloc]initWithFrame:CGRectMake(100,200,200, 200)];

    view1.backgroundColor = [UIColororangeColor];

    [self.windowaddSubview:view1];

    

    UIView *view2 = [[UIViewalloc]initWithFrame:CGRectMake(50,300,300, 200)];

    view2.backgroundColor = [UIColorpurpleColor];

    [self.windowaddSubview:view2];

//    在同一个父视图中 1.view1移动到最上面

// [self.window bringSubviewToFront:view1];

//    2.把一个视图移动到相邻视图的底下,把view2移动到下层

//    [self.window sendSubviewToBack:view2];

//    3.交换两个视图的位置

//    - (void)exchangeSubviewAtIndex:(NSInteger)index1 withSubviewAtIndex:(NSInteger)index2;

    

//    subviews是一个数组,所有子视图组成的数组,初始化视图的顺序就是把视图存放在,包括window这个父视图。

//    subviews这个数组里面的顺序,改变视图的顺序就是改变数组里元素的位置,最下面的视图是数组中下标为0的元素视图

    NSLog(@"%@",self.window.subviews);

    UIView *view = self.window.subviews[0];

    NSLog(@"%@",view);

//    交换视图位置

    [self.windowexchangeSubviewAtIndex:2withSubviewAtIndex:1];

    

//    插入某视图到另一个视图的上面

    UIView *insertView = [[UIViewalloc]initWithFrame:CGRectMake(80,250,80, 80)];

    insertView.backgroundColor = [UIColorgrayColor];

    [self.windowaddSubview:insertView];

//    [self.window  insertSubview:insertView aboveSubview:view1];

    

//    [self.window insertSubview:insertView belowSubview:view1];

 

//    [self.window insertSubview:insertView atIndex:2];

    

//⭐️⭐️⭐️⭐️tag:标记,标签,标号 -> ⭐️⭐️同一个父视图里的身份证号,可通过tag在它的父视图上找到这个视图⭐️⭐️

    insertView.tag = 100;

//    viewWithTag:在同一个父视图上面查找有没有tag值是多少的视图

    UIView *v = [self.windowviewWithTag:100];//此时视图v即视图insertView

    v.backgroundColor = [UIColorgreenColor];

    

//    移除视图的:从父视图上移除v

    [v removeFromSuperview];


0 0
原创粉丝点击