一、什么是UIWindow?
(1)window是窗口,每个app都需要借助window将内容展现给用户看
(2)在iOS中,使⽤用UIWindow类来表示窗口,通常一个应用程序只创建 一个UIWindow对象
(3)window的主要作⽤用是呈现内容给⽤用户,我们不会对window做太多操作。
(4)创建UIWindow代码
self.window=[[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
//[UIScreen mainScreen]是获得当前设备屏幕的方法
//为window设置背景色,一般的开发不需要设置
[self.window setBackgroundColor:[UIColor redColor]];
//设置window显示
[self.window makeKeyAndVisible];
二、如果不采用系统默认的window怎么自己处理
不采用系统默认的window需要先自己创建一个window,并且在main interface里面去掉默认值
三、创建一个UIView。
view(视图):代表屏幕上的一个矩形区域
不同的控件代表不同种类的view
1、开辟空间并初始化视图(初始化时,给出视图位置和⼤小)
2、对视图做一些设置(比如:背景颜色)
3、将视图添加到window上进⾏行显示
4、释放视图对象
5、代码
//创建一个视图
UIView *myView=[[UIView alloc]initWithFrame:CGRectMake(100,100,120,120)];
//结构体代表距父对象的x、y、和自身的 宽度、高度
[myView setBackgroundColor:[UIColor yellowColor]];//设置view的背景颜色
[self.window addSubview:myView];//把view添加到父容器中
四、UIView的常用属性:frame,bounds、backgroundColor、hidden、alpha、tag
UIView的常用属性
1、frame是view的重要属性,是我们做视图布局的关键,它决定了视图 的⼤小和位置
2、bounds(边界)也是view的重要属性,⽤用于定义⾃己的边界。它同frame一样是一个CGRect结构体变量。
当一个view设置bounds时,会把⾃己当成⼀个容器,定义⾃己的边界⼤小以及左上⾓的初始坐标。
当⼦视图添加到此视图时,会根据bounds指定的原点(0,0)计算frame,⽽非左上角。
3、hidden:控制视图的显隐
redView.hidden = YES;//隐藏redView redView.hidden = NO;//显⽰示redView!
4、alpha:控制视图的不透明度(⼦子视图也⼀一起 透明),取值范围0~1
redView.alpha = 0.8;
5、superview:获取本视图的⽗父视图
UIView *superView = [redView superView];
6、subviews:获取本视图的所有⼦子视图
NSArray *subviews = [redView subviews];
7、tag:给视图添加标记,被加完标记的视 图可以使⽤用viewWithTag:方法取出
redView.tag = 100;
UIView *view = [superview viewWithTag:100];
五、视图的层级关系
先创建的视图层级小,后面的视图可能会覆盖前面的视图
父视图可以改变层级关系
添加视图的方法:addSubview:
插入视图的方法:
- (void)insertSubview:(UIView *)view belowSubview:(UIView *)siblingSubview;
- (void)insertSubview:(UIView *)view aboveSubview:(UIView *)siblingSubview;
- (void)insertSubview:(UIView *)view atIndex:(NSInteger)index;
六、在IOS开发中,代码通常都写在哪里?
在iOS开发中,代码通常写在viewControl里面,而不写在delegate里面。app靠window呈现,一般一个程序只创建一个window。在window上呈现view的内容,我们不会对window做太多的操作。
七、UIView的简单动画
//动画开始
[UIView beginAnimations:nil context:nil];
//设置动画时序的时间
[UIView setAnimationDuration:3.0f];
//动画的最终结果
[self.window viewWithTag:1].frame=CGRectMake(10, 400, 100, 100);//对view进行移动
[self.window viewWithTag:1].alpha=0;//设置透明度
//提交动画
[UIView commitAnimations];
八、UILabel的常用属性
//静态显示文字
UILabel *label1=[[UILabel alloc]initWithFrame:CGRectMake(100, 100, 200, 150)];
[label1 setBackgroundColor:[UIColor cyanColor]];
//设置显示文字
label1.text=@"hello lalallalalalallaalaallala~~~~~~~~~";
//设置文字对齐方式
label1.textAlignment=NSTextAlignmentCenter;
//设置字体大小
[label1 setFont:[UIFont systemFontOfSize:30]];
//设置行数(0代表自动适应)
[label1 setNumberOfLines:0];
//设置断行样式
[label1 setLineBreakMode:NSLineBreakByTruncatingHead];
//设置阴影
[label1 setShadowOffset:CGSizeMake(2, 2)];//设置偏移量
[label1 setShadowColor:[UIColor whiteColor]];//设置阴影颜色
[self.view addSubview:label1];