2013-07-22 54 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中查詢的圖像數組,並在配置實際單元格時使用它。

相關問題