305 lines
12 KiB
Objective-C
305 lines
12 KiB
Objective-C
//
|
|
// QXSettingCell.m
|
|
// QXLive
|
|
//
|
|
// Created by 启星 on 2025/5/12.
|
|
//
|
|
|
|
#import "QXSettingCell.h"
|
|
|
|
@implementation QXSettingCell
|
|
+(instancetype)cellWithTableView:(UITableView *)tableView{
|
|
static NSString *cellId = @"QXSettingCell";
|
|
QXSettingCell *cell = [tableView dequeueReusableCellWithIdentifier:cellId];
|
|
if (!cell) {
|
|
cell = [[QXSettingCell alloc] initWithStyle:(UITableViewCellStyleDefault) reuseIdentifier:cellId];
|
|
}
|
|
return cell;
|
|
}
|
|
- (instancetype)initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString *)reuseIdentifier{
|
|
if (self = [super initWithStyle:style reuseIdentifier:reuseIdentifier]) {
|
|
[self initSubviews];
|
|
}
|
|
return self;
|
|
}
|
|
|
|
-(void)setCellType:(QXSettingCellType )cellType{
|
|
_cellType = cellType;
|
|
switch (cellType) {
|
|
case QXSettingCellTypeNormal:{
|
|
self.buyCountView.hidden = YES;
|
|
self.detailLabel.hidden = NO;
|
|
self.rightArrow.hidden = NO;
|
|
self.btnSwitch.hidden = YES;
|
|
self.detailLabel.textAlignment = NSTextAlignmentRight;
|
|
[self.rightArrow mas_remakeConstraints:^(MASConstraintMaker *make) {
|
|
make.right.mas_equalTo(-16);
|
|
make.size.mas_equalTo(CGSizeMake(24, 24));
|
|
make.centerY.equalTo(self.contentView);
|
|
}];
|
|
[self.titleLabel mas_remakeConstraints:^(MASConstraintMaker *make) {
|
|
make.left.mas_equalTo(16);
|
|
make.centerY.equalTo(self.contentView);
|
|
make.right.equalTo(self.detailLabel.mas_left).offset(-10);
|
|
}];
|
|
[self.detailLabel mas_remakeConstraints:^(MASConstraintMaker *make) {
|
|
make.right.equalTo(self.rightArrow.mas_left).offset(-10);
|
|
make.centerY.equalTo(self.contentView);
|
|
make.width.mas_equalTo(120);
|
|
}];
|
|
}
|
|
break;
|
|
case QXSettingCellTypeOnlyArrow:{
|
|
self.buyCountView.hidden = YES;
|
|
self.detailLabel.hidden = YES;
|
|
self.rightArrow.hidden = NO;
|
|
self.rightConstraint.constant = 16;
|
|
self.btnSwitch.hidden = YES;
|
|
[self.rightArrow mas_remakeConstraints:^(MASConstraintMaker *make) {
|
|
make.right.mas_equalTo(-16);
|
|
make.size.mas_equalTo(CGSizeMake(24, 24));
|
|
make.centerY.equalTo(self.contentView);
|
|
}];
|
|
[self.titleLabel mas_remakeConstraints:^(MASConstraintMaker *make) {
|
|
make.left.mas_equalTo(16);
|
|
make.centerY.equalTo(self.contentView);
|
|
make.right.equalTo(self.rightArrow.mas_left).offset(-10);
|
|
}];
|
|
}
|
|
break;
|
|
case QXSettingCellTypeOnlyDetail:{
|
|
self.buyCountView.hidden = YES;
|
|
self.detailLabel.hidden = NO;
|
|
self.rightArrow.hidden = YES;
|
|
self.btnSwitch.hidden = YES;
|
|
self.detailLabel.textAlignment = NSTextAlignmentRight;
|
|
[self.detailLabel mas_remakeConstraints:^(MASConstraintMaker *make) {
|
|
make.right.mas_equalTo(-16);
|
|
make.centerY.equalTo(self.contentView);
|
|
make.width.mas_greaterThanOrEqualTo(120);
|
|
}];
|
|
[self.titleLabel mas_remakeConstraints:^(MASConstraintMaker *make) {
|
|
make.left.mas_equalTo(16);
|
|
make.centerY.equalTo(self.contentView);
|
|
make.right.equalTo(self.detailLabel.mas_left).offset(-10);
|
|
}];
|
|
}
|
|
break;
|
|
case QXSettingCellTypeSwitch:{
|
|
self.buyCountView.hidden = YES;
|
|
self.detailLabel.hidden = YES;
|
|
self.rightArrow.hidden = YES;
|
|
self.btnSwitch.hidden = NO;
|
|
[self.btnSwitch mas_remakeConstraints:^(MASConstraintMaker *make) {
|
|
make.right.mas_equalTo(-16);
|
|
make.size.mas_equalTo(CGSizeMake(40, 40));
|
|
make.centerY.equalTo(self.contentView);
|
|
}];
|
|
[self.titleLabel mas_remakeConstraints:^(MASConstraintMaker *make) {
|
|
make.left.mas_equalTo(16);
|
|
make.centerY.equalTo(self.contentView);
|
|
make.right.equalTo(self.btnSwitch.mas_left).offset(-10);
|
|
}];
|
|
}
|
|
break;
|
|
case QXSettingCellTypeTitleTopAndArrow:{
|
|
self.buyCountView.hidden = YES;
|
|
self.detailLabel.hidden = NO;
|
|
self.rightArrow.hidden = NO;
|
|
self.btnSwitch.hidden = YES;
|
|
self.detailLabel.textAlignment = NSTextAlignmentLeft;
|
|
[self.titleLabel mas_remakeConstraints:^(MASConstraintMaker *make) {
|
|
make.left.mas_equalTo(16);
|
|
make.top.mas_equalTo(9);
|
|
make.height.mas_equalTo(21);
|
|
make.right.equalTo(self.rightArrow.mas_left).offset(-10);
|
|
}];
|
|
[self.detailLabel mas_remakeConstraints:^(MASConstraintMaker *make) {
|
|
make.left.mas_equalTo(16);
|
|
make.top.equalTo(self.titleLabel.mas_bottom);
|
|
make.bottom.equalTo(self.contentView).offset(-9);
|
|
make.right.equalTo(self.rightArrow.mas_left).offset(-10);
|
|
}];
|
|
}
|
|
break;
|
|
case QXSettingCellTypeTitleTopNoArrow:{
|
|
self.buyCountView.hidden = YES;
|
|
self.detailLabel.hidden = NO;
|
|
self.rightArrow.hidden = YES;
|
|
self.btnSwitch.hidden = YES;
|
|
self.detailLabel.textAlignment = NSTextAlignmentLeft;
|
|
[self.titleLabel mas_remakeConstraints:^(MASConstraintMaker *make) {
|
|
make.left.mas_equalTo(16);
|
|
make.top.mas_equalTo(9);
|
|
make.height.mas_equalTo(21);
|
|
make.right.equalTo(self.contentView).offset(-10);
|
|
}];
|
|
[self.detailLabel mas_remakeConstraints:^(MASConstraintMaker *make) {
|
|
make.left.mas_equalTo(16);
|
|
make.top.equalTo(self.titleLabel.mas_bottom);
|
|
make.bottom.equalTo(self.contentView).offset(-9);
|
|
make.right.equalTo(self.contentView).offset(-10);
|
|
}];
|
|
}
|
|
break;
|
|
case QXSettingCellTypeBuyCount:{
|
|
self.detailLabel.hidden = YES;
|
|
self.rightArrow.hidden = YES;
|
|
self.btnSwitch.hidden = YES;
|
|
self.buyCountView.hidden = NO;
|
|
[self.titleLabel mas_remakeConstraints:^(MASConstraintMaker *make) {
|
|
make.left.mas_equalTo(16);
|
|
make.top.mas_equalTo(9);
|
|
make.height.mas_equalTo(21);
|
|
make.right.equalTo(self.contentView).offset(-10);
|
|
}];
|
|
}
|
|
break;
|
|
default:
|
|
break;
|
|
}
|
|
}
|
|
|
|
-(void)initSubviews{
|
|
self.rightArrow = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"arrowRight"]];
|
|
[self.contentView addSubview:self.rightArrow];
|
|
[self.rightArrow mas_makeConstraints:^(MASConstraintMaker *make) {
|
|
make.right.mas_equalTo(-16);
|
|
make.size.mas_equalTo(CGSizeMake(24, 24));
|
|
make.centerY.equalTo(self.contentView);
|
|
}];
|
|
|
|
self.btnSwitch = [[UIButton alloc] init];
|
|
[self.btnSwitch setImage:[UIImage imageNamed:@"home_switch_off"] forState:(UIControlStateNormal)];
|
|
[self.btnSwitch setImage:[UIImage imageNamed:@"home_switch_on"] forState:(UIControlStateSelected)];
|
|
// [self.btnSwitch addTarget:self action:@selector(btnSwitchAction:) forControlEvents:(UIControlEventTouchUpInside)];
|
|
[self.contentView addSubview:self.btnSwitch];
|
|
[self.btnSwitch mas_makeConstraints:^(MASConstraintMaker *make) {
|
|
make.right.mas_equalTo(-16);
|
|
make.size.mas_equalTo(CGSizeMake(40, 40));
|
|
make.centerY.equalTo(self.contentView);
|
|
}];
|
|
|
|
self.detailLabel = [[UILabel alloc] init];
|
|
self.detailLabel.font = [UIFont systemFontOfSize:13];
|
|
self.detailLabel.textAlignment = NSTextAlignmentRight;
|
|
self.detailLabel.textColor = RGB16(0x494949);
|
|
[self.contentView addSubview:self.detailLabel];
|
|
[self.detailLabel mas_makeConstraints:^(MASConstraintMaker *make) {
|
|
make.right.equalTo(self.rightArrow.mas_left).offset(-10);
|
|
make.centerY.equalTo(self.contentView);
|
|
make.width.mas_equalTo(120);
|
|
}];
|
|
|
|
self.titleLabel = [[UILabel alloc] init];
|
|
self.titleLabel.font = [UIFont systemFontOfSize:14];
|
|
self.titleLabel.textColor = RGB16(0x333333);
|
|
[self.contentView addSubview:self.titleLabel];
|
|
[self.titleLabel mas_makeConstraints:^(MASConstraintMaker *make) {
|
|
make.left.mas_equalTo(16);
|
|
make.centerY.equalTo(self.contentView);
|
|
make.right.equalTo(self.detailLabel.mas_left).offset(-10);
|
|
}];
|
|
|
|
|
|
|
|
self.lineView = [[UIView alloc] init];
|
|
self.lineView.backgroundColor = [UIColor lightGrayColor];
|
|
[self.contentView addSubview:self.lineView];
|
|
[self.lineView mas_makeConstraints:^(MASConstraintMaker *make) {
|
|
make.left.mas_equalTo(16);
|
|
make.right.mas_equalTo(-16);
|
|
make.height.mas_equalTo(0.5);
|
|
make.bottom.equalTo(self.contentView);
|
|
}];
|
|
|
|
self.buyCountView = [[UIView alloc] init];
|
|
self.buyCountView.hidden = YES;
|
|
[self.contentView addSubview:self.buyCountView];
|
|
[self.buyCountView mas_makeConstraints:^(MASConstraintMaker *make) {
|
|
make.right.mas_equalTo(-16);
|
|
make.height.mas_equalTo(30);
|
|
make.centerY.equalTo(self.contentView);
|
|
make.width.mas_equalTo(110);
|
|
}];
|
|
|
|
self.reductionBtn = [[UIButton alloc] init];
|
|
[self.reductionBtn setTitle:@"-" forState:(UIControlStateNormal)];
|
|
self.reductionBtn.titleLabel.font = [UIFont boldSystemFontOfSize:18];
|
|
[self.reductionBtn setTitleColor:RGB16(0x333333) forState:(UIControlStateNormal)];
|
|
self.reductionBtn.backgroundColor = RGB(236, 240, 246);
|
|
[self.reductionBtn addTarget:self action:@selector(reductionAction) forControlEvents:(UIControlEventTouchUpInside)];
|
|
[self.buyCountView addSubview:self.reductionBtn];
|
|
[self.reductionBtn mas_makeConstraints:^(MASConstraintMaker *make) {
|
|
make.left.top.bottom.equalTo(self.buyCountView);
|
|
make.width.mas_equalTo(30);
|
|
}];
|
|
|
|
self.addBtn = [[UIButton alloc] init];
|
|
[self.addBtn setTitle:@"+" forState:(UIControlStateNormal)];
|
|
self.addBtn.titleLabel.font = [UIFont boldSystemFontOfSize:18];
|
|
self.addBtn.backgroundColor = RGB(236, 240, 246);
|
|
[self.addBtn setTitleColor:RGB16(0x333333) forState:(UIControlStateNormal)];
|
|
[self.addBtn addTarget:self action:@selector(addAction) forControlEvents:(UIControlEventTouchUpInside)];
|
|
[self.buyCountView addSubview:self.addBtn];
|
|
[self.addBtn mas_makeConstraints:^(MASConstraintMaker *make) {
|
|
make.right.top.bottom.equalTo(self.buyCountView);
|
|
make.width.mas_equalTo(30);
|
|
}];
|
|
|
|
self.textField = [[UITextField alloc] init];
|
|
self.textField.font = [UIFont systemFontOfSize:14];
|
|
self.textField.textColor = RGB16(0x333333);
|
|
self.textField.textAlignment = NSTextAlignmentCenter;
|
|
self.textField.backgroundColor = RGB(236, 240, 246);
|
|
self.textField.userInteractionEnabled = NO;
|
|
self.textField.text = @"1";
|
|
[self.buyCountView addSubview:self.textField];
|
|
[self.textField mas_makeConstraints:^(MASConstraintMaker *make) {
|
|
make.left.equalTo(self.reductionBtn.mas_right).offset(3);
|
|
make.right.equalTo(self.addBtn.mas_left).offset(-3);
|
|
make.top.bottom.equalTo(self.buyCountView);
|
|
}];
|
|
|
|
|
|
}
|
|
-(void)setNeedLine:(BOOL)needLine{
|
|
_needLine = needLine;
|
|
self.lineView.hidden = !needLine;
|
|
}
|
|
//- (void)btnSwitchAction:(UIButton *)sender {
|
|
//// sender.selected = !sender.selected;
|
|
//}
|
|
|
|
-(void)addAction{
|
|
NSInteger number = self.textField.text.integerValue;
|
|
self.textField.text = [NSString stringWithFormat:@"%ld",number+=1];
|
|
if (self.delegate && [self.delegate respondsToSelector:@selector(addDidClickWithTotalNum:)]) {
|
|
[self.delegate addDidClickWithTotalNum:self.textField.text];
|
|
}
|
|
}
|
|
|
|
-(void)reductionAction{
|
|
NSInteger number = self.textField.text.integerValue;
|
|
if (number <= 1) {
|
|
showToast(@"商品数量不能少于1个");
|
|
return;
|
|
}
|
|
self.textField.text = [NSString stringWithFormat:@"%ld",number-=1];
|
|
if (self.delegate && [self.delegate respondsToSelector:@selector(reductionDidClickWithTotalNum:)]) {
|
|
[self.delegate reductionDidClickWithTotalNum:self.textField.text];
|
|
}
|
|
}
|
|
- (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
|