过程
- 新建UITableViewCell类型的.h和.m文件
- 在UITableViewCell类型的.h文件中添加需要使用的属性
- 在UITableViewCell类型的.m文件中写固定的两个方法
- 在ViewController.m文件中进行应用
一、新建 UITableViewCell类型的文件
过程如图:
二、在.h文件中添加需要使用的属性
下面以一个label一个imageView和一个button为例:
@interface testTableViewCell : UITableViewCell
@property (nonatomic, strong) UILabel *label;
@property (nonatomic, strong) UIButton *button;
@property (nonatomic, strong) UIImageView *imageView;
@end
三、在.m文件中写固定的方法
@implementation testTableViewCell
//固定方法一:
- (instancetype)initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString *)reuseIdentifier {
self = [super initWithStyle:style reuseIdentifier:reuseIdentifier];
self.label = [[UILabel alloc] init];
[self.contentView addSubview:_label];
self.button = [[UIButton alloc] init];
[self.contentView addSubview:self.button];
self.imageView = [[UIImageView alloc] init] ;
[self.contentView addSubview: _imageView];
return self;
}
//固定方法二:
- (void)layoutSubviews {
//设置button的位置和图片等
self.Button.frame = CGRectMake(15, 15, 60, 60);
[self.Button setImage:[UIImage imageNamed:@"xxx.png"] forState:UIControlStateNormal];
//设置label的位置及文字
_label.frame = CGRectMake(85, 32, 100, 30);
_label.text = @"XXX";
//设置imageView的位置和图片
_imageView.frame = CGRectMake(150, 150, 100, 100);
_imageView.image = [UIImage imageNamed: @"xxx.jpg"];
}
cell的自定义就完成了
四、在ViewController.m文件中应用
首先需要在ViewController.h文件中加入协议
#import <UIKit/UIKit.h>
@interface ViewController : UIViewController
<
UITableViewDelegate,
UITableViewDataSource
>
//定义一个数据视图对象
@property (nonatomic, strong)UITableView* tableView;
@end;
然后在ViewController.m中应用:
#import "ViewController.h"
#import "testTableViewCell.h"
@implementation ViewController
- (void)viewDidLoad {
[super viewDidLoad];
//创建数据视图
_tableView = [[UITableView alloc] initWithFrame:self.view.bounds style:UITableViewStyleGrouped];
//设置代理
tableView.delegate = self;
tableView.dataSource = self;
//对cell进行注册
[tableView registerClass:[TAYTableViewCell class] forCellReuseIdentifier:@"cellFirst"];
//将数据视图添加到主视图上
[self.view addSubview:_tableView];
}
//设置数据视图的组数
- (NSInteger) numberOfSectionsInTableView:(UITableView *)tableView {
return 6;
}
//获取每组单元格的个数
- (NSInteger) tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {
return 1;
}
//获取单元格高度
- (CGFloat) tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath {
return 60
}
//创建单元格对象函数(创建几个单元格下面的函数就要被调用几次)
- (UITableViewCell*) tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
testTableViewCell *cellFirst = [tableView dequeueReusableCellWithIdentifier:@"cellFirst" forIndexPath:indexPath]
//设置自定义cell中按钮的信息
[cellFirst.button addTarget:self action:@selector(pressButton) forControlEvents:UIControlEventTouchUpInside];
return cellFirst;
}
//其中注册过的cell不需要判空查看是否可以复用
//注册是为某一identifier 注册一个Class
//当标识符为identifier 的Cell队列中没有可复用的cell时,系统会自动创建一个绑定的Class类型的cell,所以无需自己判空
//按钮的事件函数
- (void) pressButton {
}
@end
以上就是自定义cell的过程