//iOS 使用代码自定义cell 并添加button响应
由于使用xib画cell界面虽然说是相对比较快,但是代码管理很不方便,使用git等工具无法进行共享对比。因此,很多时候需要自己写代码来创建xib界面,并引用到tableView中去。
例如,我写的是一个里面含有一个image和一个textFiled的cell。
1、先创建一个TableViewCell类,自定义,继承于UITableViewCell
其代码入下所示:
在TableViewCell.h中:
@interface TableViewCell : UITableViewCell
@property (nonatomic,strong) UIButton *iconBtn;
@property (nonatomic,strong) UITextField *firstText;
@end
在TableViewCell.m中
#import "TableViewCell.h"
#define SCREEN_WIDTH ([UIScreen mainScreen].bounds.size.width)
#define ICON_IMAGE 20
#define MINCRAK 15
//textfiled框离左边的宽度
#define FIRSTTEXT_Left 60
#define FIRSTTEXT_HIGH 38
@implementation TableViewCell
//初始化Cell
-(instancetype)initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString *)reuseIdentifier{
self=[super initWithStyle:style reuseIdentifier:reuseIdentifier];
if(self){
[self initCell];
[self setSubviewFramWithCellHeight:50 iconWidHei:ICON_IMAGE firtextWid:SCREEN_WIDTH/8*3 firtexHei:FIRSTTEXT_HIGH];
}
return self;
}
-(void)initCell{
//1、创建头像
_iconBtn=[[UIButton alloc]init];
[_iconBtn setBackgroundImage:[UIImage imageNamed:@"contact.jpg"] forState:UIControlStateNormal];
[self.contentView addSubview:_iconBtn];
//2、创建textfield
_firstText=[[UITextField alloc] init];
_firstText.text=@"请输入数据";
_firstText.textColor=[UIColor grayColor];
_firstText.borderStyle=UITextBorderStyleBezel;
_firstText.clearsOnInsertion=YES;
_firstText.allowsEditingTextAttributes=YES;
_firstText.delegate=self;
[self.contentView addSubview:_firstText];
}
//参数说明:cell高度、头像宽高、第一个text长度、第一个text高度
-(void)setSubviewFramWithCellHeight:(CGFloat )cellheight iconWidHei:(CGFloat )iconWH firtextWid:(CGFloat )firtexW firtexHei:(CGFloat )firtexH{
//头像
_iconBtn.frame=CGRectMake((SCREEN_WIDTH/4-iconWH)/2-MINCRAK, (cellheight-iconWH)/2, iconWH, iconWH);
//