微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

在UITableView中放置标签很麻烦

如何解决在UITableView中放置标签很麻烦

| 我用这段代码显示2段的
UITableView
if(segment.selectedSegmentIndex==0)
    {

        firstSeg=[firsArray objectAtIndex:indexPath.row];

        Nsstring * celldata = [Nsstring stringWithFormat:@\"%@  %@  %@\",firstSeg.a,firstSeg.b,firstSeg.c];

        lbl =[[UILabel alloc]initWithFrame:CGRectMake(10,10,300,20) ];

        lbl.text=celldata;
        [cell.contentView addSubview:lbl];   
    }
    else if(segment.selectedSegmentIndex==1) {

        seconSeg=[secondarray objectAtIndex:indexPath.row];

        Nsstring * celldata = [Nsstring stringWithFormat:@\"%@  %@  %@\",secondSeg.a,secondSeg.b,secondSeg.c];

        lbl2 =[[UILabel alloc]initWithFrame:CGRectMake(10,20) ];

        lbl2.text=celldata;
        [cell.contentView addSubview:lbl2];
        }


    return cell;
我的
tableView
和我的句段工作正常,但是当我在第二个句段中选择一行时,第一个标签
lbl
lbl2
一起出现。我尝试在第二部分中制作make5ѭ,
lbl=NULL
,但是它不起作用,请您能帮我吗? 有了这个 cell.textLabel.text = celldata; 效果很好,但文字太大,我无法修改大小吗?     

解决方法

        问题是您每次重新加载tableview单元时都将标签添加到单元中 尝试仅添加一次标签,并为此标签指定标签 在文件顶部添加:
#define CELL_LABEL_TAG 333
创建单元格时,还要创建标签并将其添加为子视图
UILabel *lbl =[[UILabel alloc]initWithFrame:CGRectMake(10,10,300,20) ];
[lbl setTag:CELL_LABEL_TAG];
[cell.contentView addSubview:lbl];
将您的代码更改为:
if(segment.selectedSegmentIndex==0) {

    firstSeg=[firsArray objectAtIndex:indexPath.row];

    NSString * celldata = [NSString stringWithFormat:@\"%@  %@  %@\",firstSeg.a,firstSeg.b,firstSeg.c];

    lbl =(UILabel *)[cell.contentView viewWithTag:CELL_LABEL_TAG];

    lbl.text=celldata;
}
else if(segment.selectedSegmentIndex==1) {

    seconSeg=[secondArray objectAtIndex:indexPath.row];

    NSString * celldata = [NSString stringWithFormat:@\"%@  %@  %@\",secondSeg.a,secondSeg.b,secondSeg.c];

    lbl2 =(UILabel *)[cell.contentView viewWithTag:CELL_LABEL_TAG];

    lbl2.text=celldata;
    }


return cell;
    ,        如果没有太多单元,请分配一个新的“ 10”对象,而不要重复使用单元。 那可以解决您的问题。 并在将标签添加为子视图后释放标签!     

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。