如果没有图像,请更改行单元格高度

时间:2013-10-26 21:25:43

标签: ios objective-c uitableview

我正在使用SDWebImage。我正在从Web服务API中正确地提取图像,但是如果我得到响应的API没有图像(“null”),我想重新调整我的表视图单元格。

ViewController.m

if ([fL.images count] == 0) {
        //trying to figure out what to put here to change row height
    }
    else {
}

WebListCell.m

- (void)layoutSubviews {
    [super layoutSubviews];

    // (X, Y, Width, Height)
    self.publishedLabel.frame = CGRectMake(300, 210, 20, 20); 
    self.imageView.frame = CGRectMake(0, 0, 320, 180);
    self.headlineLabel.frame = CGRectMake(10, 210, 290, 40);
    self.descriptionLabel.frame = CGRectMake(10, 250, 290, 30);
    self.premiumLabel.frame = CGRectMake(260, 2, 60, 20);
}

我的问题是,当没有图像时,我找不到一个好的“if”语句,我想重新调整我的表视图单元格。

我认为我需要在WeblistCell.mheightForRowAtIndexPath为此做点什么,但我很难过。

任何帮助将不胜感激!

将发布所需的任何必要代码!

1 个答案:

答案 0 :(得分:1)

看起来你非常接近解决方案。关键是方法-heightForRowAtIndexPath: - 当行没有图像时,需要返回不同的高度。我不熟悉SDWebImage,但是如果从某种Web服务加载图像,则在尝试加载图像时应该知道图像的哪一行(索引)。因此,如果您要检索图像但没有一个(null),请将该索引添加到mutable array以跟踪缺失的图像。然后,您的-heightForRowAtIndexpath:方法只需要检查该数组中是否存在row property of the indexPath参数。