1. 程式人生 > >iOS瘋狂詳解之UITableView的全選和多選功能

iOS瘋狂詳解之UITableView的全選和多選功能

   [tableViewdeselectRowAtIndexPath:indexPath animated:YES];
   
    Custom *cell= (Custom*)[tableView cellForRowAtIndexPath:indexPath];
   
    NSUIntegerrow = [indexPath row];
   NSMutableDictionary *dic = [contacts objectAtIndex:row];
    if ([[dicobjectForKey:@"checked"] isEqualToString:@"NO"]) {
       [dic setObject:@"YES" forKey:@"checked"];
       [cell setChecked:YES];
    }else{
       [dic setObject:@"NO" forKey:@"checked"];
       [cell setChecked:NO];
    }
}

在cell類中新增BOOL屬性checked和設定方法setChecked...

全選做法如下:
NSArray *anArrayOfIndexPath = [NSArray arrayWithArray:[contactListindexPathsForVisibleRows]];
    for (int i =0; i < [contacts count]; i++) {
       NSIndexPath *indexPath= [anArrayOfIndexPath objectAtIndex:i];
       Custom *cell = (Custom*)[contactListcellForRowAtIndexPath:indexPath];
       NSUInteger row = [indexPath row];
       NSMutableDictionary *dic = [contacts objectAtIndex:row];
       if ([[[(UIButton*)sender titleLabel] text] isEqualToString:@"全選"]){
           [dic setObject:@"YES" forKey:@"checked"];
           [cell setChecked:YES];
       }else {
           [dic setObject:@"NO" forKey:@"checked"];
           [cell setChecked:NO];
       }
    }