0
-(UITableViewCell *) tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
    static NSString *cellIdentifier = @"cell";

    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:cellIdentifier];

    if (cell == nil) {
        cell = [[UITableViewCell alloc]initWithStyle:UITableViewCellStyleDefault reuseIdentifier:cellIdentifier];
    }

//    NSLog(@"msgcnt123 %@\n",[messageCount objectAtIndex:indexPath.row]);

    NSArray *seperateArray = [[clist objectForKey:[[clist allKeys]objectAtIndex:indexPath.row]]componentsSeparatedByString:@"@"];

    cell.accessoryType = UITableViewCellAccessoryDisclosureIndicator;
//    NSLog(@"key %@\n",[[clist allKeys]objectAtIndex:indexPath.row]);

    cell.textLabel.text = [seperateArray objectAtIndex:0];
//    cell.textLabel.text = [contactlist objectAtIndex:indexPath.row];
    cell.selectionStyle = UITableViewCellSelectionStyleNone;

//    NSLog(@"sep %@\n",seperateArray);


    if (![[seperateArray objectAtIndex:1] isEqualToString:@"0"]) {
        NSLog(@"msgCount %@\n",[seperateArray objectAtIndex:1]);
        lblCnt = [[UILabel alloc]initWithFrame:CGRectMake(260, 13, 20, 20)];
        lblCnt.backgroundColor = [UIColor lightGrayColor];
        lblCnt.textColor = [UIColor blackColor];
        lblCnt.text = [seperateArray objectAtIndex:1];
        lblCnt.textAlignment = UITextAlignmentCenter;
        lblCnt.layer.masksToBounds = YES;
        lblCnt.layer.cornerRadius = 2.0f;
        [cell.contentView addSubview:lblCnt];

    }
    else
    {
        NSLog(@"msgCount1 %@\n",[seperateArray objectAtIndex:1]);
        [lblCnt removeFromSuperview];
        lblCnt.hidden = YES;
    }

    return cell;
}

我在每一行中添加了一个标签,显示收到的消息数量。在 didSelect 方法中,我将标签计数设为零,这样我就可以从 tableView 中消失标签。如果表格视图中的标签不止一行,则不会消失。

4

1 回答 1

1

达到你想要的简单而肮脏的方法是使用标签

-(UITableViewCell *) tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
static NSString *cellIdentifier = @"cell";

UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:cellIdentifier];

if (cell == nil) {
    cell = [[UITableViewCell alloc]initWithStyle:UITableViewCellStyleDefault reuseIdentifier:cellIdentifier];
}

NSArray *seperateArray = [[clist objectForKey:[[clist allKeys]objectAtIndex:indexPath.row]]componentsSeparatedByString:@"@"];

cell.accessoryType = UITableViewCellAccessoryDisclosureIndicator;
cell.textLabel.text = [seperateArray objectAtIndex:0];
cell.selectionStyle = UITableViewCellSelectionStyleNone;

if (![[seperateArray objectAtIndex:1] isEqualToString:@"0"]) {

    lblCnt = [[UILabel alloc]initWithFrame:CGRectMake(260, 13, 20, 20)];
    lblCnt.backgroundColor = [UIColor lightGrayColor];
    lblCnt.textColor = [UIColor blackColor];
    lblCnt.text = [seperateArray objectAtIndex:1];
    lblCnt.textAlignment = UITextAlignmentCenter;
    lblCnt.layer.masksToBounds = YES;
    lblCnt.layer.cornerRadius = 2.0f;
    [cell.contentView addSubview:lblCnt];

    //Add a tag
    lblCnt.tag = 1000;


}
else
{
    /*
    NSLog(@"msgCount1 %@\n",[seperateArray objectAtIndex:1]);
    [lblCnt removeFromSuperview];
    lblCnt.hidden = YES;
     */


    for (UIView *view in [cell.contentView subviews]) {

        if (view.tag == 1000) {
            [view removeFromSuperview];
        }

    }

}

return cell;
}

并根据标签选择视图。

于 2013-02-04T13:05:26.287 回答