1. 程式人生 > >自定義UITableViewCell勾選框的保持

自定義UITableViewCell勾選框的保持

1//定義協議

@protocol FreeStockTableViewCellDelegate <NSObject>

-(void)button:(UIButton*)button andStock_code:(NSString *)stockCode andIsSelected:(BOOL)isSelected andIndexPathRow:(NSInteger)indexPathRow;

@end

//2.

@property(nonatomic,strong)id<FreeStockTableViewCellDelegate> delegate;

@property(nonatomic,assign)BOOL isSelected;

@property(nonatomic,assign)NSInteger indexPathRow;


//3.

-(void)layoutSubviews{

    [superlayoutSubviews];

//設定selectButton預設狀態和選擇狀態

    [self.selectButtonsetBackgroundImage:[UIImageimageNamed:@"3提醒訊息-編輯_06"]forState:UIControlStateSelected];

    [self.

selectButtonsetBackgroundImage:[UIImageimageNamed:@"3提醒訊息-編輯_10"]forState:UIControlStateNormal];

}


//4.

#pragma mark 勾選框

- (IBAction)selectBox:(id)sender {

//返回給delegate

    if ([self.delegate respondsToSelector:@selector(button:andStock_code:andIsSelected:andIndexPathRow:)]) {

        if (self.selectButton

.selected == NO) {

            self.selectButton.selected = YES;

            _isSelected = YES;

        }else{

            self.selectButton.selected = NO;

            _isSelected = NO;

        }

        [self.delegatebutton:self.selectButtonandStock_code:self.freeData.stklabelandIsSelected:self.isSelectedandIndexPathRow:self.indexPathRow];

    }

}

//EditFreeStockViewController

if ([self.items indexOfObject:@(indexPath.row)] != NSNotFound) {

        cell.selectButton.selected = YES;

    }else{

        cell.selectButton.selected = NO;

    }

    cell.isSelected = NO;

    cell.indexPathRow = indexPath.row;

    cell.freeData = self.freeStockArray[indexPath.row];

    cell.delegate = self;


#pragma mark - FreeStockTableViewCellDelegate

-(void)button:(UIButton *)button andStock_code:(NSString *)stockCode andIsSelected:(BOOL)isSelected andIndexPathRow:(NSInteger)indexPathRow{

    if (isSelected == YES) {

        [self.addStockCodeArray addObject:stockCode];

        [self.items addObject:@(indexPathRow)];

    }else{

        [self.addStockCodeArray removeObject:stockCode];

        [self.items removeObject:@(indexPathRow)];

    }

self.selectCountLabel.text = [NSStringstringWithFormat:@"已選擇%lu",(unsignedlong)[self.addStockCodeArraycount]];

}