UI(一)

本文介绍iOS应用开发中UIKit框架的基本概念,包括UIWindow的作用及初始化方法、UIView的属性设置、子视图管理以及定时器的使用等。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

//    IOS:苹果移动设备的操作系统

//    UIKit框架  里面包含了所有可以看得见的视图控件

//    UIWindow

//    UiView

    

//     UIWindow:窗口 ios应用程序中 只能有一个主窗口

//   注意:有并且只能有一个主窗口

//     UIWindow是用来显示承载 可以看到的控件 的容器

//     为什么说UIWindow是容器?  因为所有控件都是一层层 添加到窗口上的

    

    

    // UiView:是一个视图 ->是所有视图类的父类

    // UIWindow  也属于 视图


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

//     UIWindow 初始化

//    initWithFrame:<#(CGRect)#> 构造方法 ->在创建一个对象的时候 同时给他一个Frame

    //    获取屏幕边境范围的方法:[UIScreen mainScreen].bounds


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

    ViewController *vc = [[ViewController alloc]init];

    self.window.rootViewController = vc;

    [self.window makeKeyAndVisible];//让窗口 是一个主窗口 并且显示在屏幕上

    self.window.backgroundColor = [UIColor greenColor];


//1UIView视图的创建

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

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

//    视图的位置和自身大小

//    frame 位置(自身所在的位置以及自身的大小)

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

//    视图的起始位置:origin(起始点、原点)


//    窗口的起始位置是左上角(0,0)

// 屏幕的起始位置、窗口的起始位置:origin  ****所有子视图都是根据origin来定义起始位置

// size(尺寸) 视图本身的大小

//   frame 是试图中的一个属性 位置(自身所在的位置以及自身的大小)

//    CGRect

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

//    view1.frame = CGRectMake(210, 530, 200, 200);

    

//    背景颜色

//    UIColor 颜色类 创建的对象 是一种颜色

//    view.backgroundColor = [UIColor yellowColor];

//    view1.backgroundColor =[UIColor redColor];

    

// 设置视图透明度的属性

//    0.0(完全透明<所有方法属性 类似被禁用>)~1.0(不透明)

//    view.alpha = 0.9;

//    hidden:隐藏 YES表示隐藏,NO表示不隐藏

//    hidden默认值是NO 不隐藏

//    view.hidden = YES;

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

    

//  图层之间的关系

//    视图是一层一层叠加到一个父视图上的

//    父视图 子视图 的关系

//    父视图是一个承载体  子视图是父视图里面的一个元素    父视图位置发生改变 子视图的位置也会发生改变

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

//    view2.backgroundColor = [UIColor cyanColor];

//    [self.window addSubview:view2];

//    

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

//    view3.backgroundColor = [UIColor orangeColor];

//    [view2 addSubview:view3];

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

//    center 中心点 对角线的交点   center.x =/2 + 原点的  xcenter.y =/2 + 原点的y

//    NSLog(@"view2.center.x:%f",view2.center.x);

//    NSLog(@"view2.center.y:%f",view2.center.y);

//    view2.center = CGPointMake(150, 200);//改变中心点 可以改变视图的位置

//只能使用frame 在创建视图的时候 给他一个位置

//    相对于自身的位置 原点永远是(0,0)

//   bounds 自身的边境范围  bounds用途是获取视图的宽和高 忽略原点

//    NSLog(@"%f",view2.bounds.size.width);

    

//    定时器 就是隔多少秒去做某件事

//    NSTimer 定时器的类

//    定时器 初始化的方法

//    Interval:间隔(时间间隔) 单位

//    selector:方法选择器  用来选择一个方法去执行

//    repeats:重复次数

//    target:让谁去执行

    [NSTimer scheduledTimerWithTimeInterval:1 target:self selector:@selector(start) userInfo:nil repeats:YES];//隔一秒 执行一次start 重复执行

//2、添加到父视图 -> 如果没有这个方法创建的视图将不会被显示在屏幕上

//    [self.window addSubview:view];//[父视图 addSubview:要添加的视图];

//    [self.window addSubview:view1];

    

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

    view1.backgroundColor = [UIColor orangeColor];

    [self.window addSubview:view1];

    UIView *view2 = [[UIView alloc]initWithFrame:CGRectMake(50, 150, 200, 200)];

    view2.backgroundColor = [UIColor whiteColor];

    [self.window addSubview:view2];

//    在同一个父视图中

//    1view1移动到最上面

//    [self.window bringSubviewToFront:view1];

//    把一个视图移动到底下

//    view2移动到下一层

//    [self.window sendSubviewToBack:view2];

//    交换两个视图的位置

//    [self.window exchangeSubviewAtIndex:2 withSubviewAtIndex:1];

    

//    subviews(所有子视图组成的数组)数组->

//    self.window.subviews

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

//    初始化视图的顺序 就是把视图存放到subviews这个数组里面的顺序

//    改变视图的顺序 就是在改变subviews数组里面元素的位置

//    UIView *view = self.window.subviews[2];

//    NSLog(@"%@",view);

    

    

//    插入一个试图到哪一个视图的上面

    UIView *insertView = [[UIView alloc]initWithFrame:CGRectMake(80, 180, 200, 200)];

    insertView.backgroundColor = [UIColor yellowColor];

    [self.window addSubview:insertView];

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

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

//    插入到哪一个视图的底下

    [self.window insertSubview:insertView belowSubview:view2];

    

//  tag:标记 标签 标号 -> 同一个父视图里面的身份证号

    insertView.tag = 100;

//    可以通过tag 在他的父视图上找到 这个视图

//    viewWithTag: 在一个父视图上面 查找有没有tag值是100的这个视图

    UIView *v = [self.window viewWithTag:100];

//    v就是insertView

    v.backgroundColor = [UIColor redColor];

    

//    移除视图

    [v removeFromSuperview];

    return YES;

}

-(void)start{


}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值