こんにちは、複数のUITableViewCellを選択して、もう一度タップして選択解除したかったのです。そしてcellForRowAtIndexPath
:後選択したボタンをもう一度タップして複数のUITableviewセルを選択解除する方法
はdidSelectRowAtIndexPath
の私のコードです
-(UITableViewCell *)tableView:(UITableView *)tableView
cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
NSString *cellIdentifier = @"serviceTypeSelectionCell";
ServiceTypeSelectionTableViewCell *serviceTypeCell = (ServiceTypeSelectionTableViewCell *)[tableView dequeueReusableCellWithIdentifier:cellIdentifier];
if (serviceTypeCell == nil)
{
serviceTypeCell = [[ServiceTypeSelectionTableViewCell alloc]initWithStyle:UITableViewCellStyleDefault reuseIdentifier:cellIdentifier];
}
//serviceDetailsCell.noOfQuantityTextField.tag = indexPath.row;
serviceTypeCell.serviceTypeNameLabel.text = [NSString stringWithFormat:@"%@",arrayOfServiceTypes[indexPath.row][@"sub_cat_name"]];
if([[arrayOfSelectedBoolValues objectAtIndex:indexPath.row] boolValue])
{
serviceTypeCell.serviceTypeImageView.image = [UIImage imageNamed:@"cancellation_reason_correct_icon"];
}
else {
serviceTypeCell.serviceTypeImageView.image = [UIImage imageNamed:@"cancellation_reason_unselect_icon"];
}
return serviceTypeCell;
}
-(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
for (int i = 0; i < [arrayOfServiceTypes count]; i++)//Make all Rows To UnSelected
{
[arrayOfSelectedBoolValues replaceObjectAtIndex:i withObject:[NSNumber numberWithBool:NO]];
}
[arrayOfSelectedBoolValues addObjectsFromArray:sele:indexPath.row];
if(arrayOfSelectedBoolValues!=nil)
{
[arrayOfSelectedBoolValues replaceObjectAtIndex:indexPath.row withObject:[NSNumber numberWithBool:YES]];
}
[arrayOfSelectedBoolValues replaceObjectAtIndex:indexPath.row withObject:[NSNumber numberWithBool:YES]];
{
[self.tableView reloadData];
[self showOrHideAddButton];
}
私は、単一の選択と上記のUITableViewの非選択の既存のコードを持っています。上記のコードをすべて無効にして、この部分をdidSelectRowAtIndexPath
:に保存するだけで、複数の選択を行うことができます。
-(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
[arrayOfSelectedBoolValues replaceObjectAtIndex:indexPath.row withObject:[NSNumber numberWithBool:YES]];
[self.tableView reloadData];
[self showOrHideAddButton];
}
- (void)viewDidLoad {
[super viewDidLoad];
self.doneButton.hidden = YES;
arrayOfSelectedBoolValues = [[NSMutableArray alloc]init];
for (int i = 0; i < [arrayOfServiceTypes count]; i++)
{
// [arrayOfexpOrCollBoolValues addObject:[NSNumber numberWithBool:NO]];
[arrayOfSelectedBoolValues addObject:[NSNumber numberWithBool:NO]];
}
[self sendServiceToGetServiceTypes];
}
ので、誰もが複数のtableviewcellsを選択して、前にもう一度タップすることで任意のセルを選択解除し、サーバーに選択された値を送信するために自分のコードに応じて構造化されたコードを投稿してください。
ありがとうございました。
を追跡し、可変配列である中。これはあなたを助けるhttps://stackoverflow.com/questions/6302732/tableview-with-checkbox –
@ZaheerUdeenこれは私が欲しかったものです。ありがとう、私は一見を持っています。 – Fido