首页 > 代码库 > iOS疯狂详解之UITableView的全选和多选功能

iOS疯狂详解之UITableView的全选和多选功能

多选做法如下:
- (void)tableView:(UITableView *)tableViewdidSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
 
   [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];
       }
    }

iOS疯狂详解之UITableView的全选和多选功能