2

我正在像这样设置我的自定义单元格的图像。

        __weak CustomCell *weakcell = cell1;


            NSURLRequest *request = [[NSURLRequest alloc] initWithURL:[NSURL URLWithString:postPictureLink]];
    //it uses AFNetwork's UIImageView+AFNetworking extension
    [cell1.postImageView setImageWithURLRequest:request placeholderImage:nil success:^(NSURLRequest *request, NSHTTPURLResponse *response, UIImage *image) {

        weakcell.postImageView.image = image;
        //this method call changes cell height according to image size
        [weakcell layoutSubviews];


    } failure:^(NSURLRequest *request, NSHTTPURLResponse *response, NSError *error) {

    }];

但是那我该如何实施

- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath;

方法以便它可以根据我的单元格的大小给出不同的高度?由于图像大小可以不同,不同的单元格具有不同的高度。

4

3 回答 3

0

这很难做到。一种选择是以某种方式从您获取图像的 API 中获取大小。

第二种选择是仅在下载图像后显示您的单元格。然后,您可以从图像本身获取您的身高。

最后,您可以在下载图像后重新加载行。当您的图像下载时,这可能会导致一些奇怪的动画问题。

于 2013-07-22T04:23:21.400 回答
0

我已经做了你想做的类似的事情,为此编写的 API 将返回带有 URL 的图像的大小,所以我知道从服务器下载时它需要多少大小,所以我根据那个给出高度.
如果您看到 flickr 或任何其他图像 API,您可以看到有一个选项可以获取每个不同分辨率图像的大小。

于 2013-07-22T04:27:13.043 回答
0

请记住,您的表格视图单元格可以(或应该)通过该dequeueReusableCellWithIdentifier:方法重用,因此您不希望将图像存储在表格单元格上。

更好的解决方案是维护可以查询的图像数组,heightForRowAtIndexPath并在配置实际单元格时使用它。

于 2013-07-22T04:27:46.047 回答