IOS--之UIWindow(窗口)、UIView(视图)

本文详细介绍了iOS中的UIWindow和UIView的概念及其关系。UIWindow是应用程序展示内容的窗口,通常一个应用有一个UIWindow对象。而UIView代表屏幕上的矩形区域,包括各种UI控件。文中讲解了如何创建UIWindow和UIView,以及坐标系、frame、center、bounds等关键属性,还涵盖了视图的添加、层次结构以及重要属性如hidden、alpha、tag等。

IOS–之UIWindow(窗口)、UIView(视图)

一、什么是window?

1、window是窗口,每个app都需要借助window将内容展现给⽤用户看。
2、在iOS中,使⽤用UIWindow类来表示窗口,通常一个应⽤用程序只创建一个UIWindow对象。
3、window的主要作⽤用是呈现内容给⽤用户,我们不会对window做太多操作。

如何创建window

1、在创建window的时候需要指定window的大小
2、window的大小(frame)与屏幕的大小(UIScreen)大小一致
实例代码:

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

二、什么是View?

1、view(视图):代表屏幕上的一个矩形区域。ios中用UIView来表示视图。
2、app中的各种UI控件都属于view。
3、iOS中所有能看到的内容都是view或其子类。

如何创建View

1、开辟空间并初始化视图(初始化时,给出视图的位置和大小)
2、对视图做一些设置
3、将视图添加到window上进行显示
4、释放视图对象
示例代码:

UIView *view=[[UIView alloc]initWithFrame:CGRectMake(100,100,120,100)];
view.backgroundColor=[UIColor blueColor];
[self.window addSubview:view];
[view release];

IOS的坐标系

1、ios提供了用于布局的平面坐标系,左上角为坐标系的原点
2、水平向右:为X的正方向
3、垂直向下:为y的正方向
注意:坐标系不是以像素作为划分依据,而是以点作为划分依据

frame

1、frame是view的重要属性,是我们做视图布局的关键,它决定了视图的大小和位置
2、frame是一个结构体,包含两部分内容:origin和size
3、origin:也是一个结构体,包含两部分内容:x和y
4、size:也是一个结构体,包含两部分内容:width和height
5、frame的origin和size是相对于父视图来说的,CGReactMake()函数可以帮我们快速构造一个CGRect变量

center

1、center(中心点)view的重要属性
2、center是一个结构体,包含两部分内容:x和y
3、center与frame有着密切的联系

center.x=frame.origin.x+frame.size.width/2;
center.y=frame.origin.y+frame.size.width/2;

bounds(边界)

1、bounds(边界)是view的属性,用于定义自己的边界大小及左上角的初始坐标
2、当子视图添加到此视图时,会根据bounds指定原点(0,0)计算frame,而非左上角

frame、center、bounds之间的关系

这里写图片描述

这里写图片描述

这里写图片描述

添加视图

UIView的addSubview:方法可以添加子视图,对于同一个视图的所有子视图来讲,后添加的子视图会把已加载的子视图盖在下面

添加视图的其他方法:

这里写图片描述

视图的层次

这里写图片描述

视图的重要属性:

1、hidden:控制视图的显隐

redView.hidden=YES;//隐藏redView
redView.hidden=NO;//显示

2、alpha:控制视图的透明度(子视图也一起透明),取值范围0~1

redView.alpha=0.8;

3、superview:获取本视图的俯视图

UIView *superView=[redView superView];

4、subviews: 获取本视图的所有子视图

NSArray *subviews=[redView subviews];

5、tag:给视图添加标记,被加完标记的视图可以使用viewWithTag:方法取出

redView.tag=100;
UIView *view=[superview viewWithTag:100];
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值