UITableViewCell 添加 checkbox 多选

TableViewCell多选;

CheckBox;

复制代码
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
    static NSString *CellIdentifier = @"Cell";
    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
    
    if (!cell) {
        cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier];
    }
    
    NSString *seleCity = [[dataSourceArray objectAtIndex:indexPath.section] objectAtIndex:indexPath.row];
    cell.textLabel.text = seleCity;
    cell.textLabel.textAlignment = NSTextAlignmentLeft;
    cell.accessoryType = UITableViewCellAccessoryNone;
    cell.textLabel.font = [UIFont systemFontOfSize:18];
    if ([selectCitysArray containsObject:indexPath]) {
        cell.imageView.image = [UIImage imageNamed:@"checkbox_on_background.png"];
    }
    
    else
    {
        cell.imageView.image = [UIImage imageNamed:@"checkbox_off_background.png"];
    }
    
    
    UITapGestureRecognizer *tap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(handleChecking:)];
    [cell.imageView addGestureRecognizer:tap];
    cell.imageView.userInteractionEnabled = YES;
    
    return cell;
}

- (void) handleChecking:(UITapGestureRecognizer *)tapRecognizer {
    CGPoint tapLocation = [tapRecognizer locationInView:self.tableView];
    NSIndexPath *tappedIndexPath = [self.tableView indexPathForRowAtPoint:tapLocation];
    
    if ([selectCitysArray containsObject:tappedIndexPath]) {
        [selectCitysArray removeObject:tappedIndexPath];
    }
    else {
        [selectCitysArray addObject:tappedIndexPath];
    }
    [self.tableView reloadRowsAtIndexPaths:[NSArray arrayWithObject:tappedIndexPath] withRowAnimation: UITableViewRowAnimationFade];
}
复制代码

 

参考:http://stackoverflow.com/questions/3666629/how-to-add-checkboxes-to-uitableviewcell

posted @   cocoajin  阅读(1144)  评论(0编辑  收藏  举报
努力加载评论中...
点击右上角即可分享
微信分享提示