2018开篇第一篇文章,本文分享一点关于XIB的小知识,对于iOS开发新人来说或许有用。

XIBInterface Builder 的图形界面设计文档。

Xcode 3.0 开始,苹果提供Xib文件构建UI元素,其本质是XML文本文件,可以很方便的编辑。

到了Xcode 4之后更被直接集成到了Xcode中成为了IDE的一部分。

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

1.创建XIB

XIB的创建有两种初始状态,如图圈中的地方。

【View】表示创建时就有一个初始化的View视图。

【Empty】表示创建时是一个空的文件。



我创建一个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方法中进行设置才会有效。

iOS | XIB简单应用和注意点的更多相关文章

  1. ios xib或storyBoard的那些小方法

    今天看了一下xib里的一些小技巧,但是百度一搜的话,网上已经有人写过教程了,在这里我也就懒一下,不写那么详细了,就写一些如何百度的方法! 1."通过KVC修改占位文字的颜色" [t ...

  2. iOS上简单推送通知(Push Notification)的实现

    iOS上简单推送通知(Push Notification)的实现 根据这篇很好的教程(http://www.raywenderlich.com/3443/apple-push-notification ...

  3. iOS CAReplicatorLayer 简单动画

    代码地址如下:http://www.demodashi.com/demo/11601.html 写在最前面,最近在看学习的时候,偶然间发现一个没有用过的Layer,于是抽空研究了下,本来应该能提前记录 ...

  4. iOS之简单瀑布流的实现

    iOS之简单瀑布流的实现   前言 超简单的瀑布流实现,这里说一下笔者的思路,详细代码在这里. 实现思路 collectionView能实现各中吊炸天的布局,其精髓就在于UICollectionVie ...

  5. iOS xib View宽高不能改变

    IOS - xib(Interface Builder,view) - can't change view size(view不能改变大小问题) 今天在试着swift语言写个demo,,当中遇到了这个 ...

  6. IOS xib在tableview上的简单应用(通过xib自定义cell)

    UITableView是一种常用的UI控件,在实际开发中,由于原生api的局限,自定义UITableViewCell十分重要,自定义cell可以通过代码,也可以通过xib. 这篇随笔介绍的是通过xib ...

  7. **IOS:xib文件解析(xib和storyboard的比较,一个轻量级一个重量级)

    使用Xcode做iOS项目,经常会和Xib文件打交道,因为Xib文件直观的展现出运行时视图的外观,所以上手非常容易,使用也很方便,但对于从未用纯代码写过视图的童鞋,多数对Xib的理解有些片面. Xib ...

  8. iOS开发简单介绍

    概览 终于到了真正接触IOS应用程序的时刻了,之前我们花了很多时间去讨论C语言.ObjC等知识,对于很多朋友而言开发IOS第一天就想直接看到成果,看到可以运行的iOS程序.但是这里我想强调一下,前面的 ...

  9. iOS 实现简单的界面切换

    以下是在iOS中最简单的界面切换示例.使用了多个Controller,并演示Controller之间在切换界面时的代码处理. 实现的应用界面: 首先,创建一个window-based applicat ...

随机推荐

  1. C# 获取电脑硬盘剩余空间

    获取本地硬盘的所有剩余空间: 主要应用到System.IO类库的:Driveinfo.Directory,将model转换成json需要用到Newtonsoft.Json.JsonConvert.Se ...

  2. java字节码速查笔记

    java字节码速查笔记  发表于 2018-01-27 |  阅读次数: 0 |  字数统计: |  阅读时长 ≍ 执行原理 java文件到通过编译器编译成java字节码文件(也就是.class文件) ...

  3. Python爬虫《爬取get请求的页面数据》

    一.urllib库 urllib是Python自带的一个用于爬虫的库,其主要作用就是可以通过代码模拟浏览器发送请求.其常被用到的子模块在Python3中的为urllib.request和urllib. ...

  4. jsp九大内置对象==欣欣

    内置对象特点: 1.            由JSP规范提供,不用编写者实例化. 2.            通过Web容器实现和管理 3.            所有JSP页面均可使用 4.     ...

  5. Qt之QSS(样式表语法)

    http://blog.csdn.net/liang19890820/article/details/51691212 版权声明:进步始于交流,收获源于分享!纯正开源之美,有趣.好玩.靠谱...作者: ...

  6. python 后台服务

    centos 6x #!/bin/sh # chkconfig: 123456 90 10 # TTS Server for Speech Synthesis # workdir=/etc/speec ...

  7. Liunx网络管理

    本地yum源 yum(Yellow dog Updater, Modified)是一个在 Fedora 和 RedHat 以及CentOS 中的 Shell 前端软件包管理器.基于 RPM 包管理,能 ...

  8. vue项目运行报错:Module bulid failed: Error: Node Sass does not yet support your current environment

    出错起因:      从GitLab clone项目 --> 用 npm install 命令下载依赖包 --> #npm run dev,报错 错误截图: 解决方法:   思路:单独 i ...

  9. PWM----调节LED亮度

    - - --调节两个LED灯亮度 module led_pwm ( clk, rst, //cnt1_pwm, out1, out2, out3, out4 ); input clk, rst; // ...

  10. Linux--LAMP平台搭建

    LAMP平台搭建 准备工作 rpm -e php php-cli php-ldap php-commn php-mysql --nodeps 删除php相关依赖软件 rpm -ivh zlib-dev ...