1. iOS App = 各种各样的 UI控件 + 业务逻辑和算法
2.快捷键:
一、
1. UIWindow
self.window= [[UIWindow alloc]init];
//设置位置和大小
self.window.frame = [[UIScreen mainScreen]bounds];//bounds如果不设置起始位置就为(0,0)
// self.window.frame = CGRectMake(0, 0, 200, 200);
//设置颜色
//self.window.backgroundColor = [UIColor colorWithRed:100/255.0green:70/255. blue:70/255. alpha:1];
self.window.backgroundColor = [UIColor whiteColor];
// 三原色的范围:0-255,alpha(透明度),
// 范围都是0-1
// 100/255.0 后面必须是小数的形式,255.也可以
//添加到屏幕上
[self.windowmakeKeyAndVisible];
2.UIView
2)设置视图(背景色等)
3)将视图添加到window上
4)释放视图对象
eg:
//创建黄色视图
UIView*yellowView = [[UIView alloc] init];
yellowView.frame = CGRectMake(100, 100, 100, 100);
yellowView.backgroundColor = [UIColor yellowColor];
//把视图添加到window 上
[self.windowaddSubview:yellowView];
UIView *redView = [[UIViewalloc] init];
redView.frame = CGRectMake(100,200,100,300);
redView.backgroundColor = [UIColor redColor];
[self.windowaddSubview:redView];
// [yellowView addSubview:redView];//参考坐标系不同(以父视图的起点为参考系)
frame与bounds的区别:
// bounds:以自身的参考系为基准
// 更改了bounds的值,不会影响自身的位置的改变,会影响子视图的位置改变
// frame:以父视图的坐标为基准
// 修改frame,会影响自己的位置和大小
// 如果想要,挪动自身的位置
// 1.修改自身的frame
// 2.修改父视图的bounds
// 设置视图的中心点
UIView*centerView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 100,100)];
centerView.backgroundColor = [UIColor blueColor];
//设置自己的中心和window的中心对齐
centerView.center = self.window.center;
[self.windowaddSubview:centerView];
//插入一个视图
UIView*cyanView = [[UIView alloc]initWithFrame:CGRectMake(100, 100, 300,300)];
cyanView.backgroundColor = [UIColor cyanColor];
[cyanViewsetTag:10];
//插入视图给父视图发送消息,把要插入的视图作为参数
[self.windowinsertSubview:cyanView atIndex:0];
//移除视图,给需要移除的对象发送消息
//[cyanView removeFromSuperview];
//把一个视图移动到最上面,给父视图发送消息
[self.windowbringSubviewToFront:cyanView];
//移到最下面
[self.windowsendSubviewToBack:cyanView];
//交换
[self.windowexchangeSubviewAtIndex:1 withSubviewAtIndex:0];
// UIView的常用视图方法
// 隐藏
// cyanView.hidden = YES;
// 透明度
cyanView.alpha = 0.2;
// 获取父视图
NSLog(@"*******%@",[cyanView superview]);
// 获取子视图
NSLog(@"=======%@",[self.window subviews]);
[selftest];
-(void)test{
//给父视图发送消息,viewWithTag:根据tag的值获取子视图
UIView *view= [self.window viewWithTag:10];
view.backgroundColor = [UIColor redColor];
}
问题:
1.
// 为什么不能用以下这种方法修改视图的坐标呢
// cycView.bounds.origin = CGPointMake(0, 30);
//
// 不可以分开赋值,要用CGRectMake这个方法整体赋值
// //
// // 如果想单个修改,必须创建一个对象修改完后整体替换
// CGRectrect=centerView.frame;
// rect.size.width=300;
// centerView.frame=rect;
// rect.size= CGSizeMake(20, 90);
// rect.origin.x = 20; //CGPointMake(20, 90)
// centerView.frame = rect;
2.
子视图只属于上一级视图,不属于再上一级的视图
![](https://i-blog.csdnimg.cn/blog_migrate/89624cf0cafe5b621accf93adc5d9800.jpeg)
2.快捷键:
- command+shift+2 新加模拟器
- command+shift+h 模拟器中的返回
- command+1/2/3 改变模拟器的大小
- command+r 运行
- command+ctrl+e 选中代码中某个单词同步改变代码中所有相同的单词
- command+shift+n 新建工程
- command+n 在工程中新建文件
一、
1. UIWindow
- window 是窗口,作用只是将内容呈现给用户。通常一个应用程序子创建一个UIWindow 对象
- 通常 window的大小(frame)与屏幕(screen)的大小一致
- 创建:self.window = [[UIWindow alloc] initWithFrame: [ [UIScreenmainScreen] bounds]];
- 具体过程:
self.window= [[UIWindow alloc]init];
//设置位置和大小
self.window.frame = [[UIScreen mainScreen]bounds];//bounds如果不设置起始位置就为(0,0)
// self.window.frame = CGRectMake(0, 0, 200, 200);
//设置颜色
//self.window.backgroundColor = [UIColor colorWithRed:100/255.0green:70/255. blue:70/255. alpha:1];
self.window.backgroundColor = [UIColor whiteColor];
// 三原色的范围:0-255,alpha(透明度),
// 范围都是0-1
// 100/255.0 后面必须是小数的形式,255.也可以
//添加到屏幕上
[self.windowmakeKeyAndVisible];
2.UIView
- view(视图):代表屏幕上的一个矩形区域,基本各种UI控件都属于view,iOS中能看到的内容都是view或其子类
- 创建视图的步骤:
2)设置视图(背景色等)
3)将视图添加到window上
4)释放视图对象
eg:
//创建黄色视图
UIView*yellowView = [[UIView alloc] init];
yellowView.frame = CGRectMake(100, 100, 100, 100);
yellowView.backgroundColor = [UIColor yellowColor];
//把视图添加到window 上
[self.windowaddSubview:yellowView];
UIView *redView = [[UIViewalloc] init];
redView.frame = CGRectMake(100,200,100,300);
redView.backgroundColor = [UIColor redColor];
[self.windowaddSubview:redView];
// [yellowView addSubview:redView];//参考坐标系不同(以父视图的起点为参考系)
frame与bounds的区别:
// bounds:以自身的参考系为基准
// 更改了bounds的值,不会影响自身的位置的改变,会影响子视图的位置改变
// frame:以父视图的坐标为基准
// 修改frame,会影响自己的位置和大小
// 如果想要,挪动自身的位置
// 1.修改自身的frame
// 2.修改父视图的bounds
// 设置视图的中心点
UIView*centerView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 100,100)];
centerView.backgroundColor = [UIColor blueColor];
//设置自己的中心和window的中心对齐
centerView.center = self.window.center;
[self.windowaddSubview:centerView];
//插入一个视图
UIView*cyanView = [[UIView alloc]initWithFrame:CGRectMake(100, 100, 300,300)];
cyanView.backgroundColor = [UIColor cyanColor];
[cyanViewsetTag:10];
//插入视图给父视图发送消息,把要插入的视图作为参数
[self.windowinsertSubview:cyanView atIndex:0];
//移除视图,给需要移除的对象发送消息
//[cyanView removeFromSuperview];
//把一个视图移动到最上面,给父视图发送消息
[self.windowbringSubviewToFront:cyanView];
//移到最下面
[self.windowsendSubviewToBack:cyanView];
//交换
[self.windowexchangeSubviewAtIndex:1 withSubviewAtIndex:0];
// UIView的常用视图方法
// 隐藏
// cyanView.hidden = YES;
// 透明度
cyanView.alpha = 0.2;
// 获取父视图
NSLog(@"*******%@",[cyanView superview]);
// 获取子视图
NSLog(@"=======%@",[self.window subviews]);
[selftest];
-(void)test{
//给父视图发送消息,viewWithTag:根据tag的值获取子视图
UIView *view= [self.window viewWithTag:10];
view.backgroundColor = [UIColor redColor];
}
问题:
1.
// 为什么不能用以下这种方法修改视图的坐标呢
// cycView.bounds.origin = CGPointMake(0, 30);
//
// 不可以分开赋值,要用CGRectMake这个方法整体赋值
// //
// // 如果想单个修改,必须创建一个对象修改完后整体替换
// CGRectrect=centerView.frame;
// rect.size.width=300;
// centerView.frame=rect;
// rect.size= CGSizeMake(20, 90);
// rect.origin.x = 20; //CGPointMake(20, 90)
// centerView.frame = rect;
2.
子视图只属于上一级视图,不属于再上一级的视图
![](https://i-blog.csdnimg.cn/blog_migrate/89624cf0cafe5b621accf93adc5d9800.jpeg)