// // RailListTableViewCell.m // tongxin // // Created by ecell on 2023/5/16. // Copyright © 2023 xTT. All rights reserved. // #import "RailListTableViewCell.h" #import "CommonPopView.h" @interface RailListTableViewCell () /** 围栏地址 名称 eg : 学校 */ @property (weak, nonatomic) UILabel *railNameLabel; /** 规则 rg : 8:00-12:00,工作日 */ @property (weak, nonatomic) UILabel *ruleLabel; /** 地址 eg: 北京市朝阳区 .... */ @property (weak, nonatomic) UILabel *addressLabel; /** 范围 的距离显示 eg: 电子围栏 500米 */ @property (weak, nonatomic) UILabel *railRangeLabel; /** 删除按钮 */ @property (weak, nonatomic) UIButton *delectBtn; /** 编辑按钮 */ @property (weak, nonatomic) UIButton *editingBtn; @property (nonatomic ,weak) UISwitch *uiSwitch; @end @implementation RailListTableViewCell - (instancetype)initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString *)reuseIdentifier { self = [super initWithStyle:style reuseIdentifier:reuseIdentifier]; if (self) { self.selectionStyle = UITableViewCellSelectionStyleNone; self.backgroundColor = KKWhiteColorColor; self.layer.cornerRadius = 12; self.layer.masksToBounds = YES; [self subCellView]; } return self; } - (void)subCellView { WEAKSELF UILabel *railNameLabel = [UICommon ui_label:CGRectZero lines:0 align:NSTextAlignmentCenter font:FontBold_(12) textColor:mainColor text:@"" Radius:10]; self.railNameLabel = railNameLabel; [self.contentView addSubview:railNameLabel]; [railNameLabel mas_makeConstraints:^(MASConstraintMaker *make) { make.left.equalTo(self.contentView).offset(15); make.top.equalTo(self.contentView.mas_top).offset(15); make.size.mas_equalTo(CGSizeMake(28, 20)); }]; UILabel *railRangeLabel = [UICommon ui_label:CGRectZero lines:1 align:NSTextAlignmentLeft font:Font_(12) textColor:KKGrey102 text:@"" Radius:0]; self.railRangeLabel = railRangeLabel; [self.contentView addSubview:railRangeLabel]; [railRangeLabel mas_makeConstraints:^(MASConstraintMaker *make) { make.left.equalTo(railNameLabel.mas_right).offset(4); make.centerY.equalTo(railNameLabel); //make.right.equalTo(self.contentView.mas_right).inset(15); }]; UILabel *addressLabel = [UICommon ui_label:CGRectZero lines:0 align:NSTextAlignmentLeft font:FontBold_(16) textColor:KKBlack20 text:@"" Radius:0]; self.addressLabel = addressLabel; [self.contentView addSubview:addressLabel]; [addressLabel mas_makeConstraints:^(MASConstraintMaker *make) { make.left.right.equalTo(self.contentView).inset(15); make.top.equalTo(railNameLabel.mas_bottom).offset(10); }]; UILabel *ruleLabel = [UICommon ui_label:CGRectZero lines:0 align:NSTextAlignmentLeft font:Font_(12) textColor:KKGrey163 text:@"" Radius:0]; self.ruleLabel = ruleLabel; [self.contentView addSubview:ruleLabel]; [ruleLabel mas_makeConstraints:^(MASConstraintMaker *make) { make.left.right.equalTo(self.contentView).inset(15); make.top.equalTo(addressLabel.mas_bottom).offset(16); }]; UIView *line = [UIView new]; line.backgroundColor = RGB(240, 240, 240); [self.contentView addSubview:line]; [line mas_makeConstraints:^(MASConstraintMaker *make) { make.left.right.equalTo(self.contentView).inset(15); make.top.equalTo(ruleLabel.mas_bottom).offset(15); make.height.mas_equalTo(0.5); }]; UISwitch *uiSwitch = [[UISwitch alloc] init]; [uiSwitch addTarget:self action:@selector(switchBtnAction:) forControlEvents:UIControlEventValueChanged]; uiSwitch.onTintColor = mainColor; self.uiSwitch = uiSwitch; [self.contentView addSubview:uiSwitch]; [uiSwitch mas_makeConstraints:^(MASConstraintMaker *make) { make.right.equalTo(self.contentView.mas_right).inset(15); make.top.equalTo(line.mas_bottom).offset(15); make.size.mas_equalTo(CGSizeMake(48, 28)); make.bottom.equalTo(self.contentView.mas_bottom).inset(15); }]; UIButton *editingBtn = [UICommon ui_buttonSimple:CGRectZero font:Font_(14) normalColor:KKGrey102 normalText:@" 编辑" click:^(id x) { if (weakSelf.editingBlock) { weakSelf.editingBlock(); } }]; [editingBtn setImage:ImageName_(@"icon_editor_black") forState:0]; self.editingBtn = editingBtn; [self.contentView addSubview:editingBtn]; [editingBtn mas_makeConstraints:^(MASConstraintMaker *make) { make.left.equalTo(railNameLabel); make.centerY.equalTo(uiSwitch); make.size.mas_equalTo(CGSizeMake(57, 24)); }]; UIButton *delectBtn = [UICommon ui_buttonSimple:CGRectZero font:Font_(14) normalColor:KKGrey102 normalText:@" 删除" click:^(id x) { CommonPopView *popView = [CommonPopView new]; [popView subPopView:popViewType_ycgj PopTitle:@"提示" PopText:[NSString stringWithFormat:@"确定删除【%@】?",self.model.name] okTouchBlock:^{ //删除 [weakSelf.model deleteSuccess:^{ if (weakSelf.deleteBlock) { weakSelf.deleteBlock(); } } failure:^{ }]; }]; }]; [delectBtn setImage:ImageName_(@"icon_delect_black") forState:0]; self.delectBtn = delectBtn; [self.contentView addSubview:delectBtn]; [delectBtn mas_makeConstraints:^(MASConstraintMaker *make) { make.left.equalTo(editingBtn.mas_right).offset(20); make.centerY.equalTo(uiSwitch); make.size.mas_equalTo(CGSizeMake(57, 24)); }]; } -(void)setModel:(Rail *)model { _model = model; self.railNameLabel.text = model.name; self.railNameLabel.backgroundColor = [model.status boolValue] ? RGB(255, 243, 236) : RGB(240, 240, 240); self.railNameLabel.textColor = [model.status boolValue] ? mainColor : KKGrey163; CGRect ww = [UICommon GetTextWidth:model.name ViewHeight:20 fontSize:FontBold_(12) type:@"w"]; [self.railNameLabel mas_remakeConstraints:^(MASConstraintMaker *make) { make.left.equalTo(self.contentView).offset(15); make.top.equalTo(self.contentView).offset(15); make.size.mas_equalTo(CGSizeMake(ww.size.width+15, 20)); }]; self.railRangeLabel.text = [NSString stringWithFormat:@"安全范围:%@米",model.radius]; self.addressLabel.text = model.address; self.ruleLabel.text = [NSString stringWithFormat:@"%@-%@ %@",model.starttime,model.endedtime,[myHelper getWeekDayStr:model.week]]; self.uiSwitch.on = model.status.boolValue; } -(void)switchBtnAction:(UISwitch*)sender { self.model.status = @(sender.on); [self.model saveSuccess:^{ self.model.status = @(sender.on); if(self.switchBlock){ self.switchBlock(); } } failure:^{ self.model.status = @(!sender.on); }]; } - (void)awakeFromNib { [super awakeFromNib]; // Initialization code } - (void)setSelected:(BOOL)selected animated:(BOOL)animated { [super setSelected:selected animated:animated]; // Configure the view for the selected state } @end