一、tableviewcell是建立在tableview的基础上的,所以要用tableviewcell,首先先要搞定基础的tableview;
先处理代理:
<UITableViewDelegate,UITableViewDataSource>
self.tableview.delegate = self;
self.tableview.dataSource = self;
如果是storyboard拖的控件,只需要连delegate和dataSource两条线就行了;要是文件就是tableviewController也不需要,代理也是自带的。
二、cell
1、不自定义cell:
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
static NSString *cellID = @"cell";
UITableViewCell *cell = [self.tableview dequeueReusableCellWithIdentifier:cellID];
if (cell == nil) {
cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:cellID];
}
cell.textLabel.text = @"test";
return cell;
}
2、自定义cell,这种用的应该是最多的,因为默认的几种cell不能满足大多数应用的需求,所以需要创建符合自己需求cell:
(1)创建自定义cell文件包括xib:
(2)在.h文件中加入方法:
+(instancetype)testCellWithTableView:(UITableView *)tableview;
.h中可以添加自定义cell的属性,比如图片,label之类的,可以直接脱线。
(3).m中实现方法:
+(instancetype)testCellWithTableView:(UITableView *)tableview {
static NSString *testCell = @"testCell";
TestTableViewCell *cell = [tableview dequeueReusableCellWithIdentifier:testCell];
if (cell == nil) {
cell = [[[NSBundle mainBundle] loadNibNamed:@"TestTableViewCell" owner:nil options:nil]lastObject];
}
cell.textLabel.text = @"123";
return cell;
}
在用到自定义cell的文件中导入头文件:
#import "TestTableViewCell.h"
重用cell:
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
TestTableViewCell *cell = [TestTableViewCell testCellWithTableView:self.tableview];
//cell.image 可以使用cell的属性
return cell;
}
3、使用静态cell,静态cell的使用十分方便,不需要实现什么方法,可以直接把cell改成自己想要的样子,如果想了解更多静态cell的使用,可以留言。