如何禁用特定UITableViewCell的图像?

时间:2014-11-16 20:52:59

标签: ios objective-c uitableview

在我的UITableView中,如果某个部分有0行,我会将其设置为如下所示:

if (top3ArrayForSection.count-1 < 1) {

        // title of the item
        cell.textLabel.text = @"No items found, but we'll keep a lookout for you!";
        cell.textLabel.font = [UIFont systemFontOfSize:12];

        cell.detailTextLabel.text = [NSString stringWithFormat:@""];
        [cell.imageView setImage:[UIImage imageNamed:@""]];

}

这样detailTextLabel为空,cell.imageView未显示。但是,单元格最终会显示如下图所示。图像为空白,但仍占用空间,导致textLabel被推向右侧。如何为特定单元格一起删除图像?

enter image description here

2 个答案:

答案 0 :(得分:1)

我会使用UITableViewCell的不同子类来显示没有图像的子类。这比动态移动东西容易得多。

答案 1 :(得分:1)

跟进@ Almo的帖子:

创建自定义表视图的第二个变体(您可以将其设置为自定义表视图类的子类;这样您就不必重复代码。在子类中,跳过图像并移动标签结束。

另一种方法是使用自动布局和约束。您可以将标签的左边缘链接到图像视图的右边缘,然后将标签的右边缘固定到单元格的边缘。然后,当图像视图为零宽度时,标签将移位。有问题的是填充。除非您在图像为空时添加了自定义代码以将图像视图上的左边缘填充清零,否则您仍然可以从图像视图的两侧获得填充。