UI课程01 UIView及其子类

1. iOS App = 各种各样的 UI控件 + 业务逻辑和算法
2.快捷键
  • command+shift+2  新加模拟器
  • command+shift+h  模拟器中的返回
  • command+1/2/3  改变模拟器的大小
  • command+r   运行
  • command+ctrl+e  选中代码中某个单词同步改变代码中所有相同的单词
  • command+shift+n  新建工程
  • command+n   在工程中新建文件
(附:像素 = 屏幕划分的等份 * 2)

一、
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或其子类
  • 创建视图的步骤
         1)开辟控件并初始化
         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.
子视图只属于上一级视图,不属于再上一级的视图


























  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值