关于Xib 需要注意的地方
当你需要写一个繁琐的界面但是又是静态页面时,很可能会用到xib
【特例:创建继承于UIView的文件时,不带自动生成xib的勾选项,需要开发人员手动new一个同名的xib文件,在该xib文件右侧的class中选择相应的文件名】如图:
需要注意的几点:
(1)一个xib里的所有控件只能放到自己的@interface声明里,不能放到其他的文件中去
(2)学会合理利用init方法,加载xib时,需要loadNibName一下,放在init方法里会更好一些,方便我们后续在init方法中添加一些别的控件设置,,在controller中调用的时候只需要填写init方法即可,不需要担心它是xib或者是纯代码了,用法如下:
-(instancetype)init{
self = [super init];
if (self) {
//重点在这里:
self = [[[NSBundle mainBundle]loadNibNamed:@"JYEMainActivityPageView" owner:nil options:nil] firstObject];
//一些其他的设置都可写在这里、、需要注意的是,@""内的内容就是xib文件的名字
}
return self;
}
在cell中是这样的:
- (instancetype)initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString *)reuseIdentifier{
self = [super initWithStyle:style reuseIdentifier:reuseIdentifier];
if (self) {
self = [[[NSBundle mainBundle]loadNibNamed:@"JYEMineCell" owner:self options:nil] lastObject];
//一些其他设置【如果cell的内容来自Model的话,也可以定义一个model属性,在他的set方法中进行一些其他的设置】
}
return self;
}
(3)或者这样:注册一下,让你的tableview知道它要到复用池里找的哪些cell
[self.tableView registerNib:[UINib nibWithNibName:NSStringFromClass([JYERecordCell class]) bundle:nil] forCellReuseIdentifier:NSStringFromClass([JYERecordCell class])];
JYERecordCell * recordCell = [tableView dequeueReusableCellWithIdentifier:NSStringFromClass([JYERecordCell class])];
关于Xib 需要注意的地方的更多相关文章
- iOS perform action after period of inactivity (no user interaction)
代码看完后感觉非常优秀 http://stackoverflow.com/questions/8085188/ios-perform-action-after-period-of-inactivity ...
- iOS 打包.framework(包括第三方、图片、xib、plist文件)详细步骤及需要注意的地方
https://www.cnblogs.com/yk123/p/9340268.html // 加载自定义名称为Resources.bundle中对应images文件夹中的图片// 思路:从mainb ...
- IOS开发中UI编写方式——code vs. xib vs.StoryBoard
最近接触了几个刚入门的iOS学习者,他们之中存在一个普遍和困惑和疑问,就是应该如何制作UI界面.iOS应用是非常重视用户体验的,可以说绝大多数的应用成功与否与交互设计以及UI是否漂亮易用有着非常大的关 ...
- 在framework中打包xib
废话不多说,直接上图 1.Copy Bundle Resources 中加入相关xib 2.这里是重点,调用的时候不能直接写 [[NSBundle mainBundle] loadNibNamed:@ ...
- Xcode6.1标准Framework静态库制作方法。工程转Framework,静态库加xib和图片。完美解决方案。
http://www.cocoachina.com/bbs/read.php?tid-282490.html Xcode6.1标准Framework静态库制作方法.工程转Framework,静态库加x ...
- iOS 用代码+Xib搭建UI界面实例
1.背景 有些我们不能只用代码去构建界面,代码是万能的,你用其他方式可以实现的界面,用代码也一定能 实现,但是我们没必要这样做,有的时候用xib会是更好的选择,代码和xib的优劣地方我们得知道,为了 ...
- iOS开发之静态库(五)—— 图片、界面xib等资源文件封装到静态框架framework
编译环境:Macbook Air + OS X 10.9.2 + XCode5.1 + iPhone5s(iOS7.0.3) 一.首先将资源文件打包成bundle 由于bundle是静态的,所以可以将 ...
- 多个storyboard开发应用程序,封装.bundle和.a不用xib使用storyboard!!!
一,封装.bundle和.a使用xib的方式前面已经说过了,具体方式不再赘述,简单介绍于下: 静态库加.h bundle:删plist,改sdk,加xib 简称psx三步 引用库的项目,加.a .b ...
- **IOS:xib文件解析(xib和storyboard的比较,一个轻量级一个重量级)
使用Xcode做iOS项目,经常会和Xib文件打交道,因为Xib文件直观的展现出运行时视图的外观,所以上手非常容易,使用也很方便,但对于从未用纯代码写过视图的童鞋,多数对Xib的理解有些片面. Xib ...
随机推荐
- HDU 4856 (状态压缩DP+TSP)
题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=4856 题目大意:有一个迷宫.迷宫里有些隧道,每个隧道有起点和终点,在隧道里不耗时.出隧道就耗时,你的 ...
- Uiautomator打包使用第三方库,报错的解决方案
问题引源: 在做自动化过程中,想在用例执行完毕后,自动生成该用例测试报告: 报告定义为Excel格式文件,且在用例执行过程中生成. 所以我在Uiautomator工程中引用了jxl.jar,用以处理E ...
- MySQL添加字段和修改字段的方法
添加表字段 alter table table1 add transactor varchar(10) not Null; alter table table1 add id int unsign ...
- win7 无法复制粘贴
win7 无法复制粘贴解决办法 在开始-运行里输入以下命令 regsvr32 shdocvw.dll ,确定,接着出现一个消息框,确定 regsvr32 oleaut32.dll,确定,接着出现一个 ...
- SSH整合配置二级缓存
一.了解 Hibernate的session提供了一级缓存,每个session,对同一个id进行两次load,不会发送两条sql给数据库,但session关闭时,一级缓存失效. 二级缓存是Sessio ...
- [百科] - SIP(会话发起协议)
SIP(会话发起协议)SIP是类似于HTTP的基于文本的协议.SIP可以减少应用特别是高级应用的开发时间.由于基于IP协议的SIP利用了IP网络,固定网运营商也会逐渐认识到SIP技术对于他们的深远意义 ...
- [MobilewebApp]图片的适配与清晰度
iPhone4s的屏幕分辨率是640x960,这样就带来一个问题: 原来设计的320x480的设计出来的icon等图片,在高分辨率下就会显得模糊. 在经过讨论.查阅资料和测试后,可以有方法解决哦~ 1 ...
- 【转】JavaScript顶级对象参考模型
- 背景图片与 CSS的那些事
在CSS中,背景图片的定位方法有3种: 1)关键字:background-position: top left; 2)像素:background-position: 0px 0px; 3)百分比:ba ...
- 利用反射得到android存储路径
获得android手机的存储路径: public String getPrimaryStoragePath(){ try{ StorageManager sm = (StorageManager) c ...