删除 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