UITableViewCell的三种加载方式
UITableViewCell有很多加载方式,我最喜欢新建一个类然后用代码创建。为了给大家举例子,这次用到了IB。三中加载效果图,其实没差别啦,就看大家喜欢哪一种了,挑熟悉自己的方法吧,不过每种方法还是有点差异,例如第二种,在需要使用这个cell的类中IBOutlet 一个这个cell的对象。只需要读取一次,然后放在内存中,所以速度会很快。
第一种方法是新建一个继承自UITableViewCell的类,包含xib文件
,这里要改成新建的类名哦
在ib里面拖一个TableViewCell,在里面直接加东西就行了。很简单,再在-(UITableViewCell*)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
方法里面添加下面代码段
NSArray *NibObjects = [[NSBundle mainBundle]loadNibNamed:@"iCodeBlogCustomCell" owner:nil options:nil]; //第一种加载方式 for (id obj inNibObjects) { if ([obj isKindOfClass:[iCodeBlogCustomCell class]]) { cell = (iCodeBlogCustomCell*)obj; break; } }
第二种加载方式:也很简单,在ViewController.h里面声明变量IBOutlet UITableViewCell *loadedCell;
在ViewController.xib里面拖一个UITableViewCell,记住要放在空白处,不要放在默认的View上,连上线就OK了
然后在-(UITableViewCell*)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath方法里写
[[NSBundle mainBundle] loadNibNamed:@"Cell" owner:self options:nil]; cell = loadedCell; loadedCell = nil;
第三种方法:
新建一个空xib
,起名为EmptyCell,在往.xib里面拖一个UITableViewCell,在上面随便涂鸦,然后再在ViewDidLoad里面添加代码
UINib *EmptyCell = [UINib nibWithNibName:@"EmptyCell" bundle:nil]; [self.table registerNib:EmptyCell forCellReuseIdentifier:@"2cell"];
就完成了,甚至不用在-(UITableViewCell*)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath里面写任何代码,简单吧