UI父视图子视图加载


//初学UI,对视图及视图上的坐标分配模糊不清。本文以将视图切割成模块为例,讲解视图加载,坐标间关系,便于初学者更好的理解视图

- (void)viewDidLoad {
    [super viewDidLoad];
    

    self.view.backgroundColor=[UIColor greenColor];

//首先将视图一分为二
    UIView *topView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, self.view.frame.size.width, self.view.frame.size.height * 0.5)];
   UIView *bottomView = [[UIView alloc] initWithFrame:CGRectMake(0, self.view.frame.size.height * 0.5, self.view.frame.size.width, self.view.frame.size.height * 0.5)];
    topView.backgroundColor = [UIColor colorWithRed:arc4random()%255/255.0 green:arc4random()%255/255.0  blue:arc4random()%255/255.0 alpha:1];
    bottomView.backgroundColor = [UIColor colorWithRed:arc4random()%255/255.0 green:arc4random()%255/255.0  blue:arc4random()%255/255.0 alpha:1];
    
    
    [self.view addSubview:topView];
    [self.view addSubview:bottomView];
    
    
//以上面的视图为父视图,对父视图进行切割,使用for循环
    UIView *parentView = topView;
    for (int i = 0; i < 8; i++) {
        
        // 偶数次分割 竖着分
        if (i % 2 == 0) {
            UIView *view1 = [[UIView alloc] initWithFrame:CGRectMake(0, 0, parentView.frame.size.width * 0.5, parentView.frame.size.height)];
            UIView *view2 = [[UIView alloc] initWithFrame:CGRectMake(parentView.frame.size.width * 0.5, 0, parentView.frame.size.width * 0.5, parentView.frame.size.height)];
            view1.backgroundColor = [UIColor colorWithRed:arc4random()%255/255.0 green:arc4random()%255/255.0  blue:arc4random()%255/255.0 alpha:1];
            view2.backgroundColor = [UIColor colorWithRed:arc4random()%255/255.0 green:arc4random()%255/255.0  blue:arc4random()%255/255.0 alpha:1];
           
//颜色随机生成
            [parentView addSubview:view1];
            [parentView addSubview:view2];
             parentView = view2;// 注: 父视图依次迭代赋值新值
        }
        
        
        else {
            
            // 基数次分割 横着分
            UIView *view1 = [[UIView alloc] initWithFrame:CGRectMake(0, 0, parentView.frame.size.width , parentView.frame.size.height * 0.5)];
            UIView *view2 = [[UIView alloc] initWithFrame:CGRectMake(0, parentView.frame.size.height * 0.5, parentView.frame.size.width , parentView.frame.size.height * 0.5)];
            view1.backgroundColor = [UIColor colorWithRed:arc4random()%255/255.0 green:arc4random()%255/255.0  blue:arc4random()%255/255.0 alpha:1];
            view2.backgroundColor = [UIColor colorWithRed:arc4random()%255/255.0 green:arc4random()%255/255.0  blue:arc4random()%255/255.0 alpha:1];
            
            [parentView addSubview:view1];
            [parentView addSubview:view2];
            parentView = view2;
            
            
        }
        
        
    }
    

// 中间的视图
    UIView *middleView = [[UIView alloc] initWithFrame:CGRectMake(0, bottomView.frame.size.height, bottomView.frame.size.width, bottomView.frame.size.height * 0.5)];
    
    middleView.backgroundColor = [UIColor colorWithRed:arc4random() % 255/255.0 green:arc4random()%255/255.0 blue:arc4random()%255/255.0 alpha:1];
     [self.view addSubview:middleView];
    for (int i = 0; i < 3; i++) {
        
       
        UIView *view = [[UIView alloc] initWithFrame:CGRectMake(( middleView.frame.size.width /3) *i, 0 , middleView.frame.size.width /3, middleView.frame.size.height)];
        view.backgroundColor = [UIColor colorWithRed:arc4random() %255/255.0 green:arc4random() %255/255.0 blue:arc4random() %255/255.0 alpha:1];
        
        [middleView addSubview:view];
        
       
    }
    
// 视图以12 :9 的比例分割
    UIView *viewLeft = [[UIView alloc] initWithFrame:CGRectMake(0, 0.75 *self.view.frame.size.height , (4.0/3)* 0.5*bottomView.frame.size.height , 0.5 * bottomView.frame.size.height)];
    viewLeft.backgroundColor = [UIColor colorWithRed:arc4random() %255/255.0 green:arc4random() %255/255.0 blue:arc4random() %255/255.0 alpha:1];
    [self.view addSubview:viewLeft];
    
    UIView *viewRight = [[UIView alloc] initWithFrame:CGRectMake(viewLeft.frame.size.width, viewLeft.frame.origin.y, self.view.frame.size.width - viewLeft.frame.size.width, viewLeft.frame.size.height)];
    
    viewRight.backgroundColor = [UIColor colorWithRed:arc4random() %255/255.0 green:arc4random() %255/255.0 blue:arc4random()%255/255.0 alpha:1];
   [self.view addSubview:viewRight];

//余下的继续二分
   UIView *parentV = viewRight;
   for (int i = 0; i < 9; i++) {
       if (i % 2 == 0) {
           UIView *view1 = [[UIView alloc] initWithFrame:CGRectMake(parentV.frame.origin.x, parentV.frame.origin.y, parentV.frame.size.width, 0.5*parentV.frame.size.height)];
           
           view1.backgroundColor = [UIColor colorWithRed:arc4random() %255 / 255.0 green:arc4random() %255/255.0 blue:arc4random()%255/255.0 alpha:1];
           [self.view addSubview:view1];
           UIView *view2 = [[UIView alloc] initWithFrame:CGRectMake(parentV.frame.origin.x, parentV.frame.origin.y + view1.frame.size.height, parentV.frame.size.width, parentV.frame.size.height)];
           
           view2.backgroundColor = [UIColor colorWithRed:arc4random() %255 / 255.0 green:arc4random() %255/255.0 blue:arc4random()%255/255.0 alpha:1];
           [self.view addSubview:view2];
           
         parentV = view2;

       }
       
       
       else {
           
           UIView *viewL = [[UIView alloc] initWithFrame:CGRectMake(parentV.frame.origin.x + 0.5 *parentV.frame.size.width, parentV.frame.origin.y, 0.5*parentV.frame.size.width, 0.5*parentV.frame.size.height)];
           viewL.backgroundColor = [UIColor colorWithRed:arc4random() %255 / 255.0 green:arc4random() %255/255.0 blue:arc4random()%255/255.0 alpha:1];
           
           [self.view addSubview:viewL];
           
           UIView *viewB = [[UIView alloc] initWithFrame:CGRectMake(parentV.frame.origin.x, parentV.frame.origin.y,viewL.frame.size.width, viewL.frame.size.height)];
           viewB.backgroundColor = [UIColor colorWithRed:arc4random() %255 / 255.0 green:arc4random() %255/255.0 blue:arc4random()%255/255.0 alpha:1];
           parentV = viewB;
           [self.view addSubview:viewB];
           
       }

       
    }
    
    
    }
    //最后呈现出来的视图是下面那样的,可以改变循环次数,改变分割效果
    
    








根据原作 https://pan.quark.cn/s/0ed355622f0f 的源码改编 野火IM解决方案 野火IM是专业级即时通讯和实时音视频整体解决方案,由北京野火无限网络科技有限公司维护和支持。 主要特性有:私有部署安全可靠,性能强大,功能齐全,全平台支持,开源率高,部署运维简单,二次开发友好,方便与第三方系统对接或者嵌入现有系统中。 详细情况请参考在线文档。 主要包括一下项目: 野火IM Vue Electron Demo,演示如何将野火IM的能力集成到Vue Electron项目。 前置说明 本项目所使用的是需要付费的,价格请参考费用详情 支持试用,具体请看试用说明 本项目默认只能连接到官方服务,购买或申请试用之后,替换,即可连到自行部署的服务 分支说明 :基于开发,是未来的开发重心 :基于开发,进入维护模式,不再开发新功能,鉴于已经终止支持且不再维护,建议客户升级到版本 环境依赖 mac系统 最新版本的Xcode nodejs v18.19.0 npm v10.2.3 python 2.7.x git npm install -g node-gyp@8.3.0 windows系统 nodejs v18.19.0 python 2.7.x git npm 6.14.15 npm install --global --vs2019 --production windows-build-tools 本步安装windows开发环境的安装内容较多,如果网络情况不好可能需要等较长时间,选择早上网络较好时安装是个好的选择 或参考手动安装 windows-build-tools进行安装 npm install -g node-gyp@8.3.0 linux系统 nodej...
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值