2012-07-17 140 views
1

在我的應用程序中,我有一個表格,其單元格包含標題,副標題,圖像和披露指示符。所有相當的沼氣標準,所以一個通用UITableViewCell initWithStyle:UITableViewCellStyleSubtitle伎倆。除了圖像非常小,非常小以至於幾乎不可用。 (我正在使用這些來顯示照片縮略圖,你甚至不能告訴照片是什麼!)在UITableViewCell中放大圖像?

我試過執行- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath並設置一個較大的尺寸,這確實使單元格更高;但它不會影響圖像的大小。

有沒有辦法制作標準的UITableViewCell更高的圖像,還是我需要製作一個自定義的子類UITableViewCell

回答

2

您應該可以遍歷-cellForRowAtIndexPath:中每個單元格的子視圖並重置imageView的大小。

-cellForRowAtIndexPath:

for(UIView* view in cell.subviews) { 
    if([view isKindOfClass:[UIImageView class]]) { 
     [view setFrame:yourNewBiggerFrame]; 
    } 
} 

如果用-heightForRowAtIndexPath:結合這一點,你應該能夠調整細胞及其圖像視圖。

編輯:

作爲H2CO3指出,上述方法是有點冗長的和不必要的。簡單地使用單元格的imageView屬性和更改框架更清潔,更具前瞻性。所以你得到:

[cell.imageView setFrame:yourNewBiggerFrame]; 

比遍歷所有單元格的子視圖更清潔!

+0

無需駭客,有一個'imageView'屬性的UITableViewCell ... – 2012-07-17 21:41:59

+0

嗯。我只是看到了這一點,並認爲同樣的事情,但後來發現'imageView'被標記爲'readOnly'。所以我認爲你不能改變它的框架。笨。我在編輯我的答案。感謝您指出了這一點。 – 2012-07-17 21:46:19

+0

imageView是隻讀的,但其屬性仍然不是:) – 2012-07-17 22:25:49

1
[cell.imageView setFrame:yourFrameHere]; 

我想目前,由於單元格樣式,圖像的大小是成正比的單元格的大小。這就是爲什麼當你使單元變大時imageView變大。 希望這有助於。

乾杯!