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 ...
随机推荐
- SpringSecurity 3.2入门(1)框架介绍
关于Spring Security Spring Security,这是一种基于Spring AOP和Servlet过滤器 [7] 的安全框架.它提供全面的安全性解决方案,同时在 Web 请求级和方法 ...
- SQLAlchemy的使用---查询的更多操作
# 查询更多操作 from create_table import User, engine from sqlalchemy.orm import sessionmaker Session = ses ...
- vue.extend与vue.component的区别和联系
一味的闷头开发,却对基础概念缺乏理解,是个大坑... 查阅官网后现对自己的理解记录一下,用于日后复习巩固 Vue.extend({}) 简述:使用vue.extend返回一个子类构造函数,也就是预设部 ...
- 转:ArcInfo数据格式介绍
ArcInfo常用以下格式的数据:shp.Coverage..Raster CAD和Geodatabase.各种数据的组织形式不一样,其中shp.Coverage.Raster.CAD为文件类型,Ge ...
- esri GDB API
抽空研究了下API,目前1.4版本,还不错. 记录下 DatasetRelationshipTypes类型 - DatasetRelationshipTypes {string[18]} string ...
- 【读书笔记】如何高效学习(Learn More ,Study Less)
导读: 你会不会好奇为什么学习好的人会学的越来越好?那些课下不学习的人却比你考的好?一个人是怎么同时拿到好几个学位?为啥反复背的知识要领总是忘?为啥看个书总是不停走神?为啥总是苦逼似得看书直至厌烦? ...
- 爬楼梯C++
class Solution {public: /** * @param n: An integer * @return: An integer */ int climbStairs(int n) { ...
- Flask入门模板Jinja2语法与函数(四)
1 模板的创建 模板文件结构: project/ templates/ 模板文件 跳转模板一般使用: from flask import render_template,render_template ...
- POJ-3104 Drying---二分答案判断是否可行
题目链接: https://cn.vjudge.net/problem/POJ-3104 题目大意: 有一些衣服,每件衣服有一定水量,有一个烘干机,每次可以烘一件衣服,每分钟可以烘掉k滴水.每件衣服每 ...
- Android(java)学习笔记38:Android 短信发送
1.第一种可以调用系统内部的短信程序. 之前我曾经出现过一个bug就是报错: android.content.ActivityNotFoundException: No Activity found ...