一、加载xib文件的两种方式

1.方法一(NewsCell是xib文件的名称)

NSArray *objects = [[NSBundle mainBundle] loadNibNamed:@"NewsCell" owner:nil options:nil];

2.方法二

UINib *nib = [UINib nibWithNibName:@"NewsCell" bundle:nil];

NSArray *objects = [nib instantiateWithOwner:nil options:nil];

二、设置cell的高度

1.如果每一行cell的高度都是一样的,直接使用tableView的rowHeight属性设置cell的高度即可

tableView.rowHeight = 80;

2.如果每一行cell的高度不一定一样,应该用代理方法设置cell的高度

- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath

{

// 返回indexPath这行对应cell的高度

return 80;

}

三、UITableViewController

1.UITableViewController内部默认会创建一个UITableView *tableView

2.UITableViewController内部tableView的delegate(代理)和dataSource(数据源)就是这个UITableViewController

3.UITableViewController内部tableView就是控制器的view

四、自定义cell

1.通过xib

1> 一定要注意在xib的cell中设置重用标识(reuse identifier)

2> 封装的步骤

* 新建xib描述cell的样子---DealCell.xib

* 新建UITableViewCell的子类---DealCell(封装xib内部的所有东西)

* 修改xib中cell的类名(class)为DealCell

* 在DealCell中拥有xib中的所有子控件(声明属性、进行连线)

* 新建模型Deal,封装数据

* 给DealCell增加模型属性

@property (nonatomic, strong) Deal *deal;

* 重写setDeal:方法,在这个方法中根据模型数据设置cell内部子控件的属性

* 提供一个类方法,返回从xib中创建好的cell对象

* 给xib中的cell添加一个重用标识(比如deal),提供一个类方法,返回重用标识

* 提供一个类方法,返回cell的高度

3> 使用cell

* 设置每一行cell的高度

* 利用重用标识去缓存池取得cell

* 如果缓存池没有cell,创建cell

* 传递模型给cell

2.通过代码

1> 新建一个UITableViewCell的子类---WeiboCell

2> 在创建cell的时候(initWithStyle:reuseIdentifier:方法中)添加cell内部需要使用的子控件

(注意:只管创建添加子控件,先不要去管子控件的位置和尺寸)

3> 新建一个模型类---Weibo,增加对应的数据属性

4> 给WeiboCell增加一个Weibo模型属性,在拿到Weibo模型数据的同时设置子控件的属性

5> 重写setWeibo:方法,在这里面取出Weibo模型的数据显示到子控件上

加载xib文件的两种方式的更多相关文章

  1. Spring加载properties文件的两种方式

    在项目中如果有些参数经常需要修改,或者后期可能需要修改,那我们最好把这些参数放到properties文件中,源代码中读取properties里面的配置,这样后期只需要改动properties文件即可, ...

  2. windows/tomcat 修改java虚拟机JVM以utf-8字符集加载class文件的两种方式

      1.情景展示 做了这么长时间的java开发,但是,你知道JVM是以怎样的编码加载.解析class文件的吗? 我们知道,通常情况下,我们会将java文件的字符集修改成utf-8,这样,理所当然地就认 ...

  3. 转 Velocity中加载vm文件的三种方式

    Velocity中加载vm文件的三种方式   velocitypropertiespath Velocity中加载vm文件的三种方式:    方式一:加载classpath目录下的vm文件 Prope ...

  4. Velocity中加载vm文件的三种方式

    Velocity中加载vm文件的三种方式: a.  加载classpath目录下的vm文件 /** * 初始化Velocity引擎 * --VelocityEngine是单例模式,线程安全 * @th ...

  5. Java加载资源文件的两种方法

    处理配置文件对于Java程序员来说再常见不过了,不管是Servlet,Spring,抑或是Structs,都需要与配置文件打交道.Java将配置文件当作一种资源(resource)来处理,并且提供了两 ...

  6. xml文件 加载properties文件的两种方法与注意事项

    1.遇到的问题: 配置redisSpringContext.xml 时,遇到 properties加载失败,提示BeanDefinitionStoreException  和   java.lang. ...

  7. UIImage加载本地图片的两种方式

    UIImage加载图片方式一般有两种: (1)imagedNamed初始化:默认加载图片成功后会内存中缓存图片,这个方法用一个指定的名字在系统缓存中查找并返回一个图片对象.如果缓存中没有找到相应的图片 ...

  8. 动态加载script文件的两种方法

    第一种就是利用ajax方式,把script文件代码从后台加载到前台,然后对加载到的内容通过eval()执行代码.第二种是,动态创建一个script标签,设置其src属性,通过把script标签插入到页 ...

  9. QML工程加载main.qml的两种方式

    1. QQmlApplicationEngine engine; engine.load(QUrl(QStringLiteral("qrc:/main.qml"))); if (e ...

随机推荐

  1. 从"分层二进制输出"至"解决二进制树深度"总结

    本文研究的摘要,欢迎转载,但请注明出处:http://write.blog.csdn.net/postedit/41964669 近期在刷LettCode上的算法题,发现好多题目的解题思路大体是一致的 ...

  2. shell脚本—根据文件个数定时备份

    最近在了解Jenkins时,出现这样一个问题:linux ext3系统目录下的子目录个数不能超过31998个(参考:http://www.xshell.net/linux/1267.html),但je ...

  3. C++输出数据到txt

    平时总遇到将数据写到txt中的情况,尤其是在调试程序看中间结果时,所以将代码保存下来,方便以后应用: ofstream outfile; string InitialFileName("In ...

  4. 生产都消费者模式的一个demo,消费者设置缓存

    package queue; import java.util.concurrent.ExecutorService; import java.util.concurrent.LinkedBlocki ...

  5. jquery:ajax不接收返回值回

    html页面a加元素的假设href=javasrcipt:void(0)会导致ajax没有收到回后台值. : <p class="chatmsg_load_more"> ...

  6. epoll演示样本

    server参考是别人的代码 #include <stdio.h> #include <stdlib.h> #include <errno.h> #include ...

  7. Java 理论与实践: 正确使用 Volatile 变量(转)

    Java 语言中的 volatile 变量可以被看作是一种 “程度较轻的 synchronized”:与 synchronized 块相比,volatile 变量所需的编码较少,并且运行时开销也较少, ...

  8. 几个cd快速提示

    cd是project师每天都会用到的命令. 今天就来分享几条和cd有关的小技巧 cd 假设你用cd ~来进入当前用户的home文件夹的话,那么能够试试直接敲cd. 相同效果,少敲两下键盘. cd - ...

  9. C#-默认显示前列-ShinePans

    using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; usin ...

  10. 好大滴坑, Spring MVC覆盖了Trsaction

    好大滴坑. Spring MVC覆盖了Trsaction 解决方式: <!-- package-scan 4 Spring MVC --> <context:component-sc ...