您的位置:首页 > 其它

注册带xib文件的CustomCell的创建

2016-07-03 13:45 363 查看
一般而言,系统自带的表视图单元格并不能完全达到我们的需求,有时我们可以通过创建自己定义的单元格,来实现某些方面的功能、效果。下面接单介绍一下带Xib的自定义单元格的创建。

1、首先,创建一个新的工程,这里选择在5S模拟器上运行



2、接着创建一个xib文件,用来定义自己所需要的单元格的大小、样式



取名:Movie



3、在main.storyboard中的ViewController上添加一个表视图,添加自动布局以免运行出现bug,并且连线设置代理(也可代码设置代理)



4、在创建的xib里面拖入一个单元格,上面添加UIImageView和UILabel,分别给其一个tag值(方便代码中获取)



5、在工程中添加相应的图片素材和需要的plist文件,然后在viewController中用代码实现相应的单元格创建

#import "ViewController.h"

//签订代理协议
@interface ViewController () <UITableViewDataSource, UITableViewDelegate>

{
//创建全局变量数组
NSArray *_dataArr;

}

//表视图
@property (weak, nonatomic) IBOutlet UITableView *myTableView;

@end

@implementation ViewController

//定义静态全局变量标识符cellID
static NSString *cellID = @"cellID";

- (void)viewDidLoad {
[super viewDidLoad];

//加载文件数据
[self loadDataFromPlistFile];

//设置行高
_myTableView.rowHeight = 160;
//设置表视图分割线样式、颜色
_myTableView.separatorStyle = UITableViewCellSeparatorStyleSingleLine;
_myTableView.separatorColor = [UIColor redColor];

//注册xib文件可重用cell
[_myTableView registerNib:[UINib nibWithNibName:@"Movie" bundle:[NSBundle mainBundle]] forCellReuseIdentifier:cellID];

}

//从plist文件中加载数据
- (void)loadDataFromPlistFile {

//获取文件路径
NSString *filePath = [[NSBundle mainBundle] pathForResource:@"Films" ofType:@"plist"];
//通过文件路径获取到数组
_dataArr = [NSArray arrayWithContentsOfFile:filePath];

}

#pragma mark -- UITableViewDataSource必须实现的两个方法
//返回组的单元格的行数
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {

//返回数组个数
return _dataArr.count;

}

//根据索引路径返回单元格
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {

//创建单元格,使用这个方法必须先注册, 不需要判断cell是否为空
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:cellID forIndexPath:indexPath];

//创建字典,拿到数组中的字典
NSDictionary *dic = _dataArr[indexPath.row];

//从Xib的单元格中通过tag标签获取到UIImageView、UILabel
UIImageView *myImageView = [cell viewWithTag:101];
UILabel *myTitleLabel = [cell viewWithTag:102];

//从字典中拿到相应的图片、标题
myImageView.image = [UIImage imageNamed:dic[@"image"]];
myTitleLabel.text = dic[@"title"];

//返回单元格
return cell;

}

@end


运行:



这样,一个简单的带xib的自定义表视图单元格就创建完成了。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  自定义单元格