Я новичок в прошивке и я перед проблемой относительно выбора и снимите табличное cell.For Deselect я использовал didDeSelectRowAtIndexPath но не получить называютdidDeSelectRowAtIndexPath не получает вызов в объективных с
Моим кода выглядит так
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
static NSString *CellIdentifier = @"Cell";
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
if (cell == nil) {
cell = [[UITableViewCell alloc]initWithStyle:UITableViewCellStyleSubtitle reuseIdentifier:CellIdentifier];
}
cell.textLabel.text=[NSString stringWithFormat:@"%@",[reportshortActivityarray objectAtIndex:indexPath.row]];
if([Selectedarray containsObject:[reportshortActivityarray objectAtIndex:indexPath.row]])
{
[cell setAccessoryType:UITableViewCellAccessoryCheckmark];
}
else
{
[cell setAccessoryType:UITableViewCellAccessoryNone];
}
return cell;
}
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
UITableViewCell *cell = [activitytable cellForRowAtIndexPath:indexPath];
if(![Selectedarray containsObject:[reportshortActivityarray objectAtIndex:indexPath.row]]){
[Selectedarray addObject:[reportshortActivityarray objectAtIndex:indexPath.row]];
txtactivity.text = [Selectedarray componentsJoinedByString:@","];
DefaultActivityString=txtactivity.text;
}
NSLog(@"Selected Value =%@",txtactivity.text);
if(![SelectedIDarray containsObject:[reportidActivityarray objectAtIndex:indexPath.row]]){
[SelectedIDarray addObject:[reportidActivityarray objectAtIndex:indexPath.row]];
lblactivity.text = [SelectedIDarray componentsJoinedByString:@","];
}
NSLog(@"Selected Value =%@",lblactivity.text);
if (cell.selected) {
// ... Uncheck
[activitytable deselectRowAtIndexPath:indexPath animated:YES];
}
[[activitytable cellForRowAtIndexPath:indexPath] setAccessoryType:UITableViewCellAccessoryCheckmark];
activitytable.hidden=NO;
}
- (void)tableView:(UITableView *)tableView didDeSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
if([Selectedarray containsObject:[reportshortActivityarray objectAtIndex:indexPath.row]]){
[Selectedarray removeObject:[reportshortActivityarray objectAtIndex:indexPath.row]];
txtactivity.text = [Selectedarray componentsJoinedByString:@","];
}
if([SelectedIDarray containsObject:[reportidActivityarray objectAtIndex:indexPath.row]]){
[SelectedIDarray removeObject:[reportidActivityarray objectAtIndex:indexPath.row]];
lblactivity.text = [SelectedIDarray componentsJoinedByString:@","];
}
NSLog(@"Selected Value =%@",lblactivity.text);
[[activitytable cellForRowAtIndexPath:indexPath] setAccessoryType:UITableViewCellAccessoryNone];
activitytable.hidden=NO;
}
Я использую этот код для выбора и отменив его выбор правильно, но не deselect.I видел много решения на гугле, но ничего не помогает мне.
Как на картинке, я могу выбрать строку, но не в состоянии отменить it.Thanks заранее!
Вы пытаетесь создать массив выбранных ячеек? но здесь вы делаете ошибку typo, поскольку пользователь vadian предложил свой 'didDeselectRowAtIndexPath'. – vaibhav
@vaibhav ok позвольте мне проверить .... – Muju
Можете ли вы показать мне, как вы настраиваете делегатов? Кажется, что у вас dataSource вызывает беспокойство, но tableview.delegate действует weird – EmilDo