iOS | XIB简单应用和注意点
2018开篇第一篇文章,本文分享一点关于XIB的小知识,对于iOS开发新人来说或许有用。
XIB 是 Interface 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简单应用和注意点的更多相关文章
- ios xib或storyBoard的那些小方法
今天看了一下xib里的一些小技巧,但是百度一搜的话,网上已经有人写过教程了,在这里我也就懒一下,不写那么详细了,就写一些如何百度的方法! 1."通过KVC修改占位文字的颜色" [t ...
- iOS上简单推送通知(Push Notification)的实现
iOS上简单推送通知(Push Notification)的实现 根据这篇很好的教程(http://www.raywenderlich.com/3443/apple-push-notification ...
- iOS CAReplicatorLayer 简单动画
代码地址如下:http://www.demodashi.com/demo/11601.html 写在最前面,最近在看学习的时候,偶然间发现一个没有用过的Layer,于是抽空研究了下,本来应该能提前记录 ...
- iOS之简单瀑布流的实现
iOS之简单瀑布流的实现 前言 超简单的瀑布流实现,这里说一下笔者的思路,详细代码在这里. 实现思路 collectionView能实现各中吊炸天的布局,其精髓就在于UICollectionVie ...
- iOS xib View宽高不能改变
IOS - xib(Interface Builder,view) - can't change view size(view不能改变大小问题) 今天在试着swift语言写个demo,,当中遇到了这个 ...
- IOS xib在tableview上的简单应用(通过xib自定义cell)
UITableView是一种常用的UI控件,在实际开发中,由于原生api的局限,自定义UITableViewCell十分重要,自定义cell可以通过代码,也可以通过xib. 这篇随笔介绍的是通过xib ...
- **IOS:xib文件解析(xib和storyboard的比较,一个轻量级一个重量级)
使用Xcode做iOS项目,经常会和Xib文件打交道,因为Xib文件直观的展现出运行时视图的外观,所以上手非常容易,使用也很方便,但对于从未用纯代码写过视图的童鞋,多数对Xib的理解有些片面. Xib ...
- iOS开发简单介绍
概览 终于到了真正接触IOS应用程序的时刻了,之前我们花了很多时间去讨论C语言.ObjC等知识,对于很多朋友而言开发IOS第一天就想直接看到成果,看到可以运行的iOS程序.但是这里我想强调一下,前面的 ...
- iOS 实现简单的界面切换
以下是在iOS中最简单的界面切换示例.使用了多个Controller,并演示Controller之间在切换界面时的代码处理. 实现的应用界面: 首先,创建一个window-based applicat ...
随机推荐
- 获取httpservletrequest所有参数的名称和值
1.方法 private Map showParams(HttpServletRequest request) { Map map = new HashMap(); Enumeration param ...
- Android界面编程--使用活动条(ActionBar)--通过ActionBar菜单改变TextView的字体和颜色
android:orientation="vertical"(AndroidStudio不提示,这个要记住了) 昨天好不容易把ActionBar从溢出菜单overflow中弄出来了 ...
- Android使用Gradle命令动态传参完成打包,不需要修改代码
不得不说,Gradle很强大,有人会问Gradle是什么?这里也不细讲,在我认为他就是一个构建神器.Gradle 提供了: 一个像 Ant 一样的非常灵活的通用构建工具 一种可切换的, 像 Maven ...
- 安装lombok(eclipse)
下载 lombok.jar (https://projectlombok.org/download.html) 将 lombok.jar 放在eclipse安装目录下,和 eclipse.ini 文件 ...
- eclipse中手动设置library,选择编译工具方法
target=android-25sdk.buildtools=25.0.2 target=android-26android.library=falseandroid.library.referen ...
- ArcGIS Enterprise 10.5.1 静默安装部署记录(Centos 7.2 minimal)- 5、安装Datastore
安装Datastore 解压datastore安装包,tar -xzvf ArcGIS_DataStore_Linux_1051_156441.tar.gz 切换到arcgis账户静默安装server ...
- java面试题之----String的intern
When---什么时候需要了解String的intern方法: 面试的时候(蜜汁尴尬)!虽然不想承认,不过面试的时候经常碰到这种高逼格的问题来考察我们是否真正理解了String的不可变性.String ...
- tampermonkey利用@require调用本地脚本的方法
比如Tampermonkey上的有个用户脚本a,本来的方法是: 1.直接在Tampermonkey上编辑js,适合高手,但是本人不清楚脚本如何同步,况且不熟练js,在Tampermonkey上写太难了 ...
- 实验:将系统进程映射移到 Python 字典中
参考官方文档,测试下列代码,把oracle的进程映射到python的字典中: [oracle@ycr python]$ more pro_get.py import reimport subproce ...
- Ant Design项目记录和CSS3的总结和Es6的基本总结
这里主要是介绍自己运用ANT框架的一些小总结,以前写到word里,现在要慢慢传上来, 辅助生殖项目总结:从每个组件的运用的方法和问题来总结项目. 1.项目介绍 辅助生殖项目主要运用的是Ant.desi ...