转自:https://blog.csdn.net/qq_29892943/article/details/70210687
TimeSwitchModel.h文件:
#import <Foundation/Foundation.h>
@interface TimeSwitchModel : NSObject
@property (nonatomic,copy)NSString *idstr;
@property (nonatomic,copy)NSString *namestr;
@property (nonatomic,copy)NSString *datastr;
@end
- 1
- 2
- 3
- 4
- 5
- 6
- 7
TimeSwitchCell.h文件
#import <UIKit/UIKit.h>
@class TimeSwitchModel;
@interface TimeSwitchCell : UITableViewCell
@property(nonatomic,strong)TimeSwitchModel *model;
@property(nonatomic,copy) void(^deleteclick)(NSString *);
@end
- 1
- 2
- 3
- 4
- 5
- 6
- 7
TimeSwitchCell.m文件
#import "TimeSwitchCell.h"
#import "TimeSwitchModel.h"
@interface TimeSwitchCell()
{
UIImageView *_headpicImageview;
UILabel *_namelabel;
UILabel *_datelabel;
UIButton *_deletebtn;
}
@end
@implementation TimeSwitchCell
- (void)awakeFromNib {
}
- (instancetype)initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString *)reuseIdentifier
{
if (self = [super initWithStyle:style reuseIdentifier:reuseIdentifier]) {
[self initView];
}
return self;
}
-(void)initView
{
_headpicImageview=[[UIImageView alloc]init];
[self.contentView addSubview:_headpicImageview];
_deletebtn=[UIButton buttonWithType:UIButtonTypeCustom];
[self.contentView addSubview:_deletebtn];
_namelabel=[[UILabel alloc]init];
[self.contentView addSubview:_namelabel];
_datelabel=[[UILabel alloc]init];
[self.contentView addSubview:_datelabel];
}
-(void)setModel:(TimeSwitchModel *)model
{
_model=model;
_deletebtn.frame=CGRectMake(-79, 0, 79, 80);
[_deletebtn setImage:[UIImage imageNamed:@"delete_icon.png"] forState:UIControlStateNormal];
[_deletebtn setImage:[UIImage imageNamed:@"delete_highlight_icon.png"] forState:UIControlStateHighlighted];
[_deletebtn addTarget:self action:@selector(deletebtnclick:) forControlEvents:UIControlEventTouchUpInside];
_headpicImageview.image=[UIImage imageNamed:@"timeswich_head_icon.png"];
_headpicImageview.frame=CGRectMake(8, 12, 56, 56);
_namelabel.font=[UIFont systemFontOfSize:17];
_namelabel.textColor=JyColor(109, 109, 109, 1);
_namelabel.frame=CGRectMake(72, 16, 300, 30);
_namelabel.text=model.namestr;
_datelabel.font=[UIFont systemFontOfSize:15];
_datelabel.textColor=JyColor(255, 128, 3, 1);
_datelabel.frame=CGRectMake(72, 50, 300, 30);
_datelabel.text=model.datastr;
}
-(void)deletebtnclick:(UIButton *)idstr
{
if (self.deleteclick) {
self.deleteclick(_model.idstr);
}
}
-(void) setEditing:(BOOL)editing animated:(BOOL)animated{
if (self.editing == editing)
{
return;
}
[super setEditing:editing animated:animated];
//
CGFloat moveSpace = 79-38;//cell的编辑模式会帮你自动移动38 所以我们要继续移动79-38
if (self.editing)
{
[_headpicImageview setFrame:CGRectMake(_headpicImageview.frame.origin.x + moveSpace, _headpicImageview.frame.origin.y, _headpicImageview.frame.size.width, _headpicImageview.frame.size.height)];
[_deletebtn setFrame:CGRectMake(_deletebtn.frame.origin.x + moveSpace, _deletebtn.frame.origin.y, _deletebtn.frame.size.width, _deletebtn.frame.size.height)];
[_namelabel setFrame:CGRectMake(_namelabel.frame.origin.x + moveSpace, _namelabel.frame.origin.y, _namelabel.frame.size.width, _namelabel.frame.size.height)];
[_datelabel setFrame:CGRectMake(_datelabel.frame.origin.x + moveSpace, _datelabel.frame.origin.y, _datelabel.frame.size.width, _datelabel.frame.size.height)];
}else
{
[_headpicImageview setFrame:CGRectMake(_headpicImageview.frame.origin.x - moveSpace, _headpicImageview.frame.origin.y, _headpicImageview.frame.size.width, _headpicImageview.frame.size.height)];
[_deletebtn setFrame:CGRectMake(_deletebtn.frame.origin.x - moveSpace, _deletebtn.frame.origin.y, _deletebtn.frame.size.width, _deletebtn.frame.size.height)];
[_namelabel setFrame:CGRectMake(_namelabel.frame.origin.x - moveSpace, _namelabel.frame.origin.y, _namelabel.frame.size.width, _namelabel.frame.size.height)];
[_datelabel setFrame:CGRectMake(_datelabel.frame.origin.x - moveSpace, _datelabel.frame.origin.y, _datelabel.frame.size.width, _datelabel.frame.size.height)];
}
}
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
- 39
- 40
- 41
- 42
- 43
- 44
- 45
- 46
- 47
- 48
- 49
- 50
- 51
- 52
- 53
- 54
- 55
- 56
- 57
- 58
- 59
- 60
- 61
- 62
- 63
- 64
- 65
- 66
- 67
- 68
- 69
- 70
- 71
- 72
- 73
- 74
- 75
- 76
- 77
- 78
- 79
- 80
- 81
- 82
- 83
- 84
- 85
- 86
- 87
- 88
- 89
- 90
- 91
- 92
- 93
- 94
- 95
- 96
- 97
在uitableviw里面 我们用一个block传入我们点击了哪个cell的模型id
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
static NSString *identifier=@"timewsitch";
TimeSwitchCell *cell = [tableView dequeueReusableCellWithIdentifier:identifier];
if (cell==nil) {
cell=[[TimeSwitchCell alloc]initWithStyle:UITableViewCellStyleDefault reuseIdentifier:identifier];
}
TimeSwitchModel *model=[[TimeSwitchModel alloc]init];
model.idstr=[@"000" stringByAppendingString:[NSString stringWithFormat:@"%ld",(long)indexPath.row]];
model.namestr=@"这里是产品的名字";
model.datastr=@"2017/01/24";
cell.model=model;
cell.deleteclick=^(NSString * idstr){
NSLog(@"—idstr是:%@",idstr);
};
return cell;
}
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
ok,运行一下,看看效果: