删除 cell.contentview 上的所有子视图,标签除外

Posted

技术标签:

【中文标题】删除 cell.contentview 上的所有子视图,标签除外【英文标题】:remove all the subview on cell.contentview except the label 【发布时间】:2012-02-27 09:30:08 【问题描述】:

如果我们使用以下代码,我可以删除所有子视图,包括 textLabel。我需要删除除内容视图标题标签之外的所有内容

for (int i=0; i < [self.mylist count]; i++) 

    NSIndexPath *lIndexPath = [NSIndexPath indexPathForRow:i inSection:0];

    UITableViewCell *cell = [tableView cellForRowAtIndexPath:lIndexPath];

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

知道如何避免这种情况

【问题讨论】:

【参考方案1】:

只要检查视图是否是UILabel类型就行了

for (int i=0; i < [self.mylist count]; i++) 

    NSIndexPath *lIndexPath = [NSIndexPath indexPathForRow:i inSection:0];

    UITableViewCell *cell = [tableView cellForRowAtIndexPath:lIndexPath];



    for (UIView *view in cell.contentView.subviews) 
        if(![view isKindOfClass:[UILabel class]])
        
        [view removeFromSuperview];
        
        else
        
        //check if it titlelabel or not, if not remove it
        


【讨论】:

如果删除的标签附加了约束怎么办?例如,我想删除中间标签,但它下面的标签对删除有垂直约束。然后第二个标签不会填充已删除标签的空间。如何解决这个问题?

以上是关于删除 cell.contentview 上的所有子视图,标签除外的主要内容,如果未能解决你的问题,请参考以下文章

iPhone:向 Cell ContentView 添加子视图会在滚动时覆盖单元格文本

uitableview - 自定义图像不断加载到 cell.contentView

[cell addSubview:button] 和 [cell.contentview addsubview:button] 有啥不同

cell.contentView systemLayoutSizeFittingSize:不适用于动态高度tableview

Tableview [cell.contentview viewwithtag:] 返回 nil

如何设置表格视图单元格之间的空间并删除背景内容视图的白色