zoukankan      html  css  js  c++  java
  • iOS | XIB简单应用和注意点

    2018开篇第一篇文章,本文分享一点关于XIB的小知识,对于iOS开发新人来说或许有用。
    XIBInterface Builder 的图形界面设计文档。
    Xcode 3.0 开始,苹果提供Xib文件构建UI元素,其本质是XML文本文件,可以很方便的编辑。
    到了Xcode 4之后更被直接集成到了Xcode中成为了IDE的一部分。

    在日常开发中,使用XIB可以进行控件的快速集成,是一种小而快捷的生成途径,但是同时存在一定的弊端。不如纯代码编写模式那样适合大型项目大规模使用,利于版本管理、追踪改动以及代码合并,代码重用性强,代码后期维护方便快捷。

    1.创建XIB

    XIB的创建有两种初始状态,如图圈中的地方。
    【View】表示创建时就有一个初始化的View视图。
    【Empty】表示创建时是一个空的文件。

    我创建的XIB
    我创建一个XIB文件,其中最大的是一个UIView,里面嵌套了两个label文本。

    2.加载xib
    //因为两种方式所获得的都是nib文件,而文件中可能有多个子控件,所以得到的是数组,用firstobject或者lastobject都可以。
        //   ====方式一=====
         UIView *v1 = [[[NSBundle mainBundle] loadNibNamed:@"test01" owner:nil options:nil] firstObject];
         [self.view addSubview:v1];
        //    ====方式二=====
        UINib *nib = [UINib nibWithNibName:@"test01" bundle:nil];
        UIView *v2 = [[nib instantiateWithOwner:nil options:nil] firstObject];
        [self.view addSubview:v2];
    
    3.注意点

    XIB绑定的.m文件,其初始化调用的方法是调用

    -(instancetype)initWithCoder:(NSCoder *)aDecoder{
        if (self = [super initWithCoder:aDecoder]) {
            
        }
        return self;
    }
    
    -(void)awakeFromNib{
        [super awakeFromNib];
        
        //UIView *v =[[UIView alloc]init];
        //v.backgroundColor = [UIColor redColor];
        //v.frame = CGRectMake(10, 50, 20, 20);
        //[self addSubview:v];
        
        self.label.text = @"hahahaha";
    }
    

    如果想使用XIB中的子控件,不可以在initWithCoder:方法中设置,因为这个时候子控件并没有唤醒,必须在awakeFromNib方法中进行设置才会有效。

  • 相关阅读:
    求约数的个数-牛客
    成绩排序 -- 牛客
    SpringBoot学习笔记4-整合Jdbc Template-Mybatis-多数据源-事务管理-JPA
    SpringBoot学习笔记3-自定义拦截器-全局异常处理-Freemarker-Thymeleaf-定时任务调度
    SpringBoot学习笔记2-日志管理-开发模式-web开发-FastJson
    SpringBoot学习笔记1-简介-全局配置文件-starter-profiles-自动配置原理
    将Ueditor文件上传至OSS
    nouveau :failed to create kernel chanel,-22
    教你怎么炼鸡肉
    教你怎么写猜年龄游戏
  • 原文地址:https://www.cnblogs.com/JanChuJun/p/10102248.html
Copyright © 2011-2022 走看看