2016-04-05 31 views
-1

Bu sorunun daha önce sorulmuş olduğunu biliyorum, ancak bunlar arasında bir karışıklık var. Hücrede birden fazla onay işaretine ihtiyaç duyduğumda ve bu hücrede tekrar tıklatıldığında, seçili hücrenin onay işareti yok olarak ayarlanmalıdır. Bunu denedim ancak seçili tüm hücreye tekrar tıklandığında tüm hücre seçili değil. Bunu denedim. Tablo görünümü hücresindeki onay kutusunu işaretleyin

- (UITableViewCell)tableView:(UITableView)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath 
{ 
    myTableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:@"myTableViewCell" forIndexPath:indexPath]; 
cell.accessoryType = UITableViewCellAccessoryNone; 

    return cell; 
} 

ve

- (void)tableView:(UITableView)tableView didSelectRowAtIndexPath:(NSIndexPath )indexPath 
{ 
    myTableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:@"myTableViewCell" forIndexPath:indexPath]; 
    if (cell.accessoryType == UITableViewCellAccessoryNone) { 
     cell.accessoryType = UITableViewCellAccessoryCheckmark; 
    } 
    else 
    { 
     cell.accessoryType = UITableViewCellAccessoryNone; 
    } 

    } 

didSelectRowAtIndexPath

ve didDeselectRowAtIndexPath

-(void)tableView:(UITableView)tableView didDeselectRowAtIndexPath:(NSIndexPath)indexPath 
{ 
    myTableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:@"myTableViewCell" forIndexPath:indexPath]; 
    if (cell.accessoryType == UITableViewCellAccessoryNone) { 
     cell.accessoryType = UITableViewCellAccessoryCheckmark; 
    } 
    else 
    { 
     cell.accessoryType = UITableViewCellAccessoryNone; 
    } 
} 

yılında

yardım edin.

+1

Sadece cellForRowAtIndexPath' –

+1

/yorum yöntemi 'didDeselectRowAtIndexPath' kaldırıp ve dizini seçilen dizini saklamak gerekir ve indexPath.row ile kontrol etmek gerekir ile aynı veya cellforrowIndexPath –

+1

tamam didDeselect Tüse gerek olmadığını' kullanmak ... .. deneyin –

cevap

0

Seçilmiş olsun ya da olmasın, hücrenin durumunu korumanız yeterlidir. Bunu, hücrenizdeForRowAtIndexPath içinde deneyin. Eğer didSelectRowAtIndexPath ve didDeselectRowAtIndexPath yöntemleri içinde `dequeueReusableCellWithIdentifier` kullanırken neden

if ([tableView.indexPathsForSelectedRows containsObject:indexPath]) { 
    cell.accessoryType = UITableViewCellAccessoryCheckmark; 
} 
else 
{ 
    cell.accessoryType = UITableViewCellAccessoryNone; 
} 
+0

çalışmıyor. .. –

İlgili konular