IOS之UI--小实例项目--添加商品和商品名(使用xib文件终结版) + xib相关知识点总结
添加商品和商品名小项目(使用xib文件终结版)
小贴士:博文末尾有项目源码在百度云备份的下载链接。







xib相关知识点总结
01-基本使用
一开始使用xib的时候,如果要使用自定义view的代码,就需要将xib的class设置为那个view的类型,然后我觉得就可以直接使用了,其实不是这样的,还需要代码加载nib文件,并且最后返回数组对象才能使用哦。
关于XIb就看截图ppt 外加截图代码 可以用在自定义控件上
加载xib文件的过程
xib文件 -编译xib成功-> nib文件
加载nib文件的第一种方式
NSArray* array = [[[NSBundle mainBundle]
loadNibNamed:NSStringFromClass(self) owner:nil options:nil] lastObject]
加载nib文件的第二种方式
UINib* nib = [UINib nibWithNibName:@"Test" bundle:[NSBundle mainBundle]];
NSArray* array = [nib instantiateWithOwner:nil options:nil];
在第二种方式中bundle:后面的参数可以为nil,如果为nil,默认也是会加载NSBundle的mainBundle方法返回的值。
返回的是数组对象,因为加载xib获取的控件可能是多个,所以默认返回的是存储这些多个控件的数组对象
02-xib和storyboard对比:
- 共同点:
- 都用来描述软件界面
- 都用Interface Builder工具来编辑
- 本质都是转换成代码去创建控件
- 不同点
- xib是轻量级的,用来描述局部的UI界面
- storyboard是重量级的,用来描述整个软件的多个界面,并且能展示多个界面之间的跳转关系
03-拖线来引用子控件
使用xib总结步骤:
新建xib文件,设置好控件
新建两个继承UIView的类,类名假设为MyUIView
然后将xib文件的类型设置为MyUIView
然后为MyUIView添加模型对象的属性,并为这个属性写好set方法
托线,把xib的控件连接到MyUIView上,最好拖放在类扩展里。
有PPT的话,可以直接拿来做笔记
04-xib的加载原理
xib的加载过程
加载xib文件 首先解析xib文件的根节点,并通过class设置创建对应的对象 然后解析属性尺寸中的尺寸设置frame ...等等相关属性的设置... 遇到子控件,同样创建子控件,并设置属性,最后被add到父控件
对于xib文件中,如果层级关系是:
- UIView 可以通过设置class绑定到自定义的类文件
- UILabel 子控件也可以通过设置class绑定到自定义的类文件
- UIImageView 最后xib的整个组合控件各个部分都可以自定义
1 -(void)loadXib
2 {
3 父控件类名* 父控件别名 = [[父控件类名 alloc] init];
4 父控件别名.frame = CGRectMake(0,0,70,90);
5
6 子控件类名* 子控件别名 = [[子控件类名 alloc] init];
7 ......
8 }
xib的加载过程
1、解析底层的父控件Class,确定类型之后通过这个类型alloc+init创建对象
2、通过xib对应的attribute设置属性,进行属性赋值,比如 别名.frame = frame值
3、接着有子控件的话,就像创建父控件一样创建子控件,包括设置好相关属性,最后添加进父控件。
05-xib的注意点



IOS之UI--小实例项目--添加商品和商品名(使用xib文件终结版) + xib相关知识点总结的更多相关文章
- IOS之UI--小实例项目--添加商品和商品名(纯代码终结版)
前言:这个小实例项目是完完全全以MJ视频传授的优化方案一步一个思路从零开始敲出代码的,而且每一步都有思路,都有逻辑所以然.敲代码讲究思路,我个人不建议记忆太多东西,反正我记性很差的. 小贴士:文章末尾 ...
- 在iOS开发中,给项目添加新的.framework
首先需要了解一下iOS中静态库和动态库.framework的概念 静态库与动态库的区别 首先来看什么是库,库(Library)说白了就是一段编译好的二进制代码,加上头文件就可以供别人使用. 什么时候我 ...
- iOS开发——UI基础-自定义构造方法,layoutSubviews,Xib文件,利用Xib自定义View
一.自定义构造方法 有时候需要快速创建对象,可以自定义构造方法 + (instancetype)shopView { return [[self alloc] init]; } - (instance ...
- IOS之UI--小实例项目--添加商品和商品名
*:first-child { margin-top: 0 !important; } body > *:last-child { margin-bottom: 0 !important; } ...
- IOS开发之小实例--创建一个简单的用于视频录制和回放的应用程序
前言:还是看了一下国外的入门IOS文章:<Create a Simple App for Video Recording and Playback>,主要涉及视频录制和回放的功能的基本实现 ...
- IOS开发之小实例--使用UIImagePickerController创建一个简单的相机应用程序
前言:本篇博文是本人阅读国外的IOS Programming Tutorial的一篇入门文章的学习过程总结,难度不大,因为是入门.主要是入门UIImagePickerController这个控制器,那 ...
- iOS开发:为xcode项目添加git仓储
现在apple官网下载Command Line Tools 对应mac版本和xcode版本,记录地址:https://developer.apple.com/downloads/ 找到mac的终端,c ...
- 【UI】为项目添加类似于淘宝筛选列表勾选的ui-choose
jQuery下载的地址:http://www.htmleaf.com/jQuery/Form/201512182916.html GitHub地址:https://github.com/wangxin ...
- python requests库网页爬取小实例:亚马逊商品页面的爬取
由于直接通过requests.get()方法去爬取网页,它的头部信息的user-agent显示的是python-requests/2.21.0,所以亚马逊网站可能会拒绝访问.所以我们要更改访问的头部信 ...
随机推荐
- jQuery 1.9 Ajax代码带注释
/* -----------ajax模块开始 -----------*/ var // Document location ajaxLocParts, ajaxLocation, ajax_nonce ...
- 栈的图文解析 和 对应3种语言的实现(C/C++/Java)
概要 本章会先对栈的原理进行介绍,然后分别通过C/C++/Java三种语言来演示栈的实现示例.注意:本文所说的栈是数据结构中的栈,而不是内存模型中栈.内容包括:1. 栈的介绍2. 栈的C实现3. 栈的 ...
- [OpenCV] Face Detection
即将进入涉及大量数学知识的阶段,先读下“别人家”的博文放松一下. 读罢该文,基本能了解面部识别领域的整体状况. 后生可畏. 结尾的Google Facenet中的2亿数据集,仿佛隐约听到:“你们都玩儿 ...
- Mysql学习笔记(十四)备份与恢复
学习内容: 1.数据库的重要数据备份... 2.什么时候需要使用到数据库备份.. 3.如何恢复备份的数据.. 1.备份: 说到备份,相比大家都不应该陌生,比如说我们平时在为我们的电脑重新做系统的时候, ...
- CMD魔法堂:获取进程路径和PID值的方法集
一.前言 在开发发布更更新工具——更新Weblogic应用模块时,了解到更新Weblogic应用需要先关闭Weblogic应用窗口然后是清缓存.更新应用文件,最后再重启Weblogic应用窗口. ...
- AOP——代理技术
一.如何理解代理技术 Proxy:不用你去做,别人代替你去处理.如Windows快捷方式,又如房屋中介 起到一个中介作用,通过代理对象,可以去掉客户不能看到的内容和服务或者添加客户需要的额外服务. 二 ...
- 使用openssl生成RSA公私密钥
在windows 环境下 1.进入cmd命令窗口 切换到openssl程序目录下 2.输入openssl.exe,进入openssl命令模式下 3.生成私钥输入“genrsa -out app_pri ...
- IIS启动网站出错的几个解决方法
在ASP.NET项目中使用了IIS服务器,由于系统是XP的,而在装系统的时候IIS没有一起装,所以从网上下载的IIS5.0版本(其它版本XP是用不了的).但是在使用的过程中老是出问题,每次调试好后,过 ...
- 记一次纠结Macbook 重装OS X的系统
本文所有图片都是网上截图,不是实操环境.本文不具有教学意义. 起因:Macbook 白苹果了,无限菊花. 我的Macbook 只能装 OS X Mountain Lion 10.8,但是呢 MacBo ...
- ActiveReports 报表应用教程 (5)---解密电子商务领域首张电子发票的诞生(套打报表)
6月27日京东商城发布了中国电子商务领域首张电子发票,同时宣布相关系统正式上线,这标志着中国电子商务的步伐又向前迈出了重要的一步.目前“电子发票”覆盖的服务范围是在北京地区购买图书.音像商品的个人消费 ...
