自定義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.
}
//4.
#pragma mark 勾選框
- (IBAction)selectBox:(id)sender {
//返回給delegate值
if ([self.delegate respondsToSelector:@selector(button:andStock_code:andIsSelected:andIndexPathRow:)]) {
if (self.selectButton
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]];
}