当tableviewcell高度降低时,UIImageView缓存

时间:2013-05-16 07:54:49

标签: iphone ios objective-c uitableview uiimage

UITableview的自定义单元格为UIImageViews。在UITableview我使用didSelectRowAtIndexPath方法增加单元格的高度。另外,我正在添加增加细胞高度并恢复到正常高度的方法。

当我点击单元格时,高度正在增加,当我再次点击单元格时(为了使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
}

2 个答案:

答案 0 :(得分:0)

请注意::

[UIImage imageNamed:@""] 缓存图片。而是使用:[UIImage imageWithContentsOfFile:@""]

要使图像等于UIImageView大小,您应该使用:

cell.imageView.contentMode = UIViewContentModeScaleAspectFill;

参考:https://stackoverflow.com/a/9945160/667586

答案 1 :(得分:0)

你的帧数不会很好。例如,在zoomInProperties中,你将fruitImage设置为73.0的origin.y,但它的高度是82.5(小数像素?),所以它将结束于155.5,低于customCellView的底部135.6。如果外部单元格UIView未设置为剪辑,则图像将部分绘制到下一个单元格中。

此外,通过在设置外部customCellView之前设置内部框架,如果应用了autoResizeMask,则可以对大小进行2次更改。