2013-05-16 186 views
0

我有UITableview其中定製單元格與UIImageViews。在UITableview我使用didSelectRowAtIndexPath方法增加了單元的高度。此外,我正在添加方法來增加細胞高度並恢復到正常高度。UIImageView緩存,同時tableviewcell高度降低

當我在電池的高度被增加,當我再次對細胞點擊(爲了使tableviewcell返回到默認的高度),而在過渡這是對tableviewcell圖像抽頭像它保持低於示出和回到默認的高度。(我不知道該圖像是如何被顯示,而在過渡)

-(void) zoomOutProperties 
{ 
     fruitImage.frame=CGRectMake(0.0, 46.0, 320.0, 83.5); 
     backgroundCellImage.frame=CGRectMake(0.0, 0.0, 320.0,129.5); 
     customCellView.frame=CGRectMake(0.0, 0.0, 320.0, 129.5); // UIView 
} 
+0

想要緩存圖片嗎? – iEinstein

+0

不,我不想..當我點擊第二次.during從增加高度過渡到正常高度的圖像是在單元格的頂部,我不知道如何顯示圖像 – raptor

+0

請參閱牆壁賣家回答 – iEinstein

回答

0

請注意::

[UIImage imageNamed:@""]緩存圖像。而是使用:[UIImage imageWithContentsOfFile:@""]

爲了使圖像等於UIImageView的大小,你應該使用:

cell.imageView.contentMode = UIViewContentModeScaleAspectFill; 

參見:https://stackoverflow.com/a/9945160/667586

0

您的幀數量加起來不很好。例如,在zoomInProperties中,您設置fruitImage的origin.y爲73.0,但其高度爲82.5(小數點像素?),因此它將以155.5結束,這低於customCellView的底部135.6。如果外部單元格UIView未設置爲剪輯,則圖像將部分繪製到下一個單元格中。

此外,通過在設置外部customCellView之前設置內部框架,如果應用autoResizeMask,則可以對尺寸進行2次更改。

+0

沃爾特我已設置fruitImage有origin.y在73.0,所以當我點擊細胞的細胞高度增加和圖像y原點被推下來,使其出現在該中心增加細胞高度 – raptor

+0

我假設customCell是UITableViewCell有問題,並且fruitImage位於customCell的視圖層次結構中(可能位於customCell.contentView中)。 –

+0

增加子視圖的大小不會影響單元格的大小。如果fruitImage與customCell的邊界重疊,並且customCell未設置爲剪切其內容,則允許fruitImage繪製通過customCell的邊緣。下一個單元格或頁眉或頁腳或其他應用程序部分對此一無所知,因此水果圖像在customCell縮小之後保留。 –