2013-07-22 53 views
2

我正在像这样设置自定义单元格的图像。如何调整下载的图片的单元格高度async

 __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; 

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

+0

你只在细胞上设置图像?或者还有其他的东西吗? –

+0

你有哪些代码?您应该将图像添加到数据源,然后可以在heightForRowAtIndexPath中查询其大小。 – rdelmar

回答

0

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

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

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

0

我已经完成了类似的工作,因为编写的API会将URL图像的大小返回给我,所以我知道从服务器下载数据时需要多少大小,所以我给出了根据这个高度。
如果您看到flickr或图像的任何其他API,您可以看到有一个选项可以获取每个不同分辨率图像的大小。

+0

其实我从Facebook的图表'graph.facebook.com/ [pageid]/feed'获得这些图片 –

+0

https://developers.facebook.com/docs/reference/api/using-pictures/ 您可以使用它来获取预定义的图像大小 –

0

请记住,您的表格视图单元格可以(或应该)与dequeueReusableCellWithIdentifier:方法一起使用,因此您不希望将图像存储在表格单元格中。

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

相关问题