UIView 和 UIWindow 的学习内容

UIWindow是UIView的子类,一个程序只能有一个window主窗口.

在XCode7之后我们创建UIWindow的对象,代码如下:

//创建一个窗口,使其铺满屏幕(设置大小)          初始化的时候不要用self.window,这样相当于先调用setter方法再申请空间,可能会出现传值错误

_window = [[UIWindow alloc] initWithFrame:[UIScreen mainScreen].bounds];  //UIScreen mainScreen代表满屏

//为窗口设置属性(创建一个视图控制器,通过RGB的值进行调色)

[self.window setBackgroundColor:[UIColor colorWithRed:166/255.0 green:100/255.0 blue:30/255.0 alpha:1]];

//设置window的根视图控制器

UIViewController *root = [[UIViewController alloc]init];

[self.window setRootViewController:root];

//绘制window(这一步一定要放到最后一步来,所有程序代码都加载好以后,再绘制Window)

[self.window makeKeyAndVisible];

这样我们就设置好了程序的window界面,相当于设置好了一个画框.

UIView表示屏幕上的一块矩形区域,负责渲染区域的内容,并相应该区域内发生的事件.IOS中所有的可视化控件都是UIView的子类.

struct CGPoint {

CGFloat x;

CGFloat y;

};typedef struct CGPoint CGPoint;//点结构体

struct CGPoint {

CGFloat x;

CGFloat y;

};typedef struct CGPoint CGPoint;//确定大小的结构体

struct CGPoint {

CGFloat x;

CGFloat y;

};

typedef struct CGPoint CGPoint;//一个矩形框的结构体,IOS中使用CGRect类型确定矩形位置以及大小

UIView可以看作是画布~画框做好之后,要放置画布(一共三步):

UIView *view = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 100, 100)];      //申请内存空间,初始化

view.backgroundColor = [UIColor redColor];        //设置控件属性(在这里对画布UIView进行设置)

[self.window addSubview:view];    //添加子视图

在设置控件属性这一步可以对视图进行更多的设置,比如:

  view.center = self.window.center;    //将UIView放到window的中心

  view.tag = 1;    //给视图做一个标记,在window上标记为1

想要使用的时候用:

- (nullable UIView *) viewWithTag:(NSInteger)tag;

比如:

UIView *newView = [self.window viewWithTag:1];     //父视图中tag为1的子视图

frame是UIView的重要属性,是我们用于视图布局的关键。 它决定了视图的大小和位置。frame是CGRect类型,是基于它父视图的坐标系而言的。

bounds 是CGRect,是告诉子视图本视图的原点位置.(通俗的说就是,子视图的frame的origin与父视图的bounds的origin的差,

就是子视图相对于父视图左上角的位置,如果结果为负,则子视图在父视图外)

center  是CGPoint  指的就是整个视图的中心点,改变视图的center也会改变frame.

UIView常用的属性

对视图控制常用的方法:

对视图层次的管理:

时间: 2024-10-20 18:28:56

UIView 和 UIWindow 的学习内容的相关文章

iOS开发——UI篇OC篇&UIView/UIWindow/UIScreen/CALayer

UIView/UIWindow/UIScreen/CALayer 1.UIScreen可以获取设备屏幕的大小. 1 2 3 4 5 6 7 // 整个屏幕的大小 {{0, 0}, {320, 480}} CGRect bounds = [UIScreen mainScreen].bounds; NSLog(@"UIScreen bounds: %@", NSStringFromCGRect(bounds)); // 应用程序窗口大小 {{0, 20}, {320, 460}} CGRe

iOS——UIView和UIWindow用法

基础 UI(user interface)是用户界面:iOS的应用是由各种各样的UI控件组成 UIWindow就是一个窗口,学的第一个基础类,就是一个容器,可以在容器上放不同的内容,每个app都需要借助Window将内容展现给用户 UIView是视图,代表屏幕上的一个矩形区域 UIView和UIWindow除了继承外没有其他关系,window是窗口,上面赋着UIView,平常看不见UIWindow,我们用的self是系统建的UIView 一般不要直接在UIWindow上直接加视图 创建视图:1.

ijwmh1-2-以前学习整理出来的学习内容--什么是变量1整型变量

崧闱旭 ijwmh1-2-以前学习整理出来的学习内容--什么是变量1整型变量

2015.7.31学习内容

2015.7.31学习内容 循环结构——for循环 1.什么时候选用for循环结构? 当循环次数固定的时候,我们首选for循环 2.for循环结构的基本语法和执行顺序是什么? (1).for语法 for(初始变量;循环条件;迭代变量){ } for(int i=0;i<100;i++){ //循环操作 } (2).死循环:如果一个循环没有终止条件,那么该程序将会无休止的执行下去,直到我们强行结束掉该程序 ,程序才强行退出,那么这样的循环,称为死循环. (3).break 当我们想要在循环过程中,

2017/9/5的学习内容___通过yield实现在单线程的情况下实现并发运算的效果

之前的学习内容,由于没有申请开通博客,就没有分享,今天想分享一下学习内容:通过yield实现在单线程的情况下实现并发运算的效果 采用的是经典的生产消费者模型 定义了两个函数 Consumer与Producer 关于生成器标志yield : 如果用__next__访问,只是单纯调用yield :如果是send访问,不仅可以访问yield,也可以给yield赋值! 需求:一个人造包子:两个人吃包子: 代码如下: 1 # -*- coding:utf-8 -*- 2 # Author : 何子辰 3

python-第一块,笔记整理和学习内容复习(day1 - day2 - day3)

DAY1 学习内容: 今天是培训班开班第一天,第一天,了解了python的历史,发展前景,也喝了Alex老师的一大碗鸡汤.鸡汤是鲜的,然后学习还是要学得. 今天写了python的第一个程序,hello world.突然想起大学的时候学习c语言的时候,写的也是这个.此时此刻,新增所想确实,hello python,i'm coming. 笔记:大写代表常量,例如PIE: ASCII的起源,以及gb2312.gbk.gb18031和utf-8等编码的出生: 注释:单行用#,多行用'''   ''':

2015.7.29学习内容

2015.7.29学习内容 一.Switch选择结构 1.回顾 01.在Java中如何产生一个随机数 Math.random()    随机数范围:0到1,能取到0,取不到1 02.equals(): 在Java中,如果比较两个字符串用==的话,会出现错误,所以以后我们只要是对字符串类型进行对比,统一使用equals方法 2.Switch选择结构 Switch(char/int){ case 1: //语句 break; case 2: //语句2 break; default: //默认语句

2.Freshman阶段学习内容的确定

我刷知乎.在知乎上答题的程序员,不是很牛逼就是更牛逼,说起各种系统.各种系统的各种版本.各种语言.数据库.算法.IT届的各种圣战都有板有眼.信手拈来.头头是道,不得不服.这导致了一些非常严重的问题:我都想学,什么都想学,要学的东西太多了,但是不知道从什么地方学期,注意力全都分散了,而且已经花了好多精力找资料了...不由得使我想起大一的时候各种下资料分类整理归档,然后基本上都没看过.前面犯过的错历历在目,再犯的时候毫无察觉,死性不改,人类为何总是重复相同的错误T_T.所以花了一会儿静下心想了想,觉

2017年8月9日学习内容存放 #socket通信介绍

2017年8月9日学习内容存放 1 #socket通信介绍 2 3 ''' 4 OSI七层 5 6 应用 7 表示 8 会话 9 传输 10 网络 ip 11 数据链路 mac 12 物理层 网线 13 14 15 16 http 17 smtp 18 dns 19 ftp 20 ssh 21 snmp 22 icmp ping 23 dhcp 24 25 26 27 发 send 28 收 receive 29 30 31 32 33 TCP/IP 三次握手,四次断开 34 35 UDP 36