固定cell.imageView.image的大小

首选:

cell.imageView?.frame = CGRectMake(0, 0, 20, 20)

cell.imageView?.contentMode = UIViewContentMode.ScaleAspectFit

不过此方法图片大小无法改变。。

 

下面网络复制的:

cell.imageView.image的大小 会随着Cell的高度而变化,不同的图片显示的也不一样,在网上找了几种方法,简单方便的是下面这种:

UIImage *icon = [UIImage imageWithName:@ "xxxxx" ];
CGSize itemSize = CGSizeMake(30, 30);
UIGraphicsBeginImageContextWithOptions(itemSize, NO ,0.0);
CGRect imageRect = CGRectMake(0.0, 0.0, itemSize.width, itemSize.height); //用这个有个黑边

var imageRect = CGRectMake(-1, -1, itemSize.width+2, itemSize.height+2)//用这个没有黑边 这个是swift的

[icon drawInRect:imageRect];
 
cell.imageView.image = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
 
另外还有其它方法没有成功:设置cell. imageView.contentMode的属性,
还有一种是网上转载的比较多的一种,由于不是自定义的cell,没用到此方法 :
 

重定义一个uitableviewcell,它自动生成的代码不需要动,只要在.m文件中再加上下面的代码即可:

(具体可参看:http://blog.csdn.net/zhangjie1989/article/details/7550990)

- ( void )layoutSubviews {

    [ super layoutSubviews ];

     self . imageView . bounds  = CGRectMake (0,0,44,44);

     self . imageView . frame  = CGRectMake (0,0,44,44);

     self . imageView . contentMode  = UIViewContentModeScaleAspectFit ;

    

     CGRect  tmpFrame =  self . textLabel . frame ;

    tmpFrame. origin . x  = 46;

     self . textLabel . frame  = tmpFrame;

    

    tmpFrame =  self . detailTextLabel . frame ;

    tmpFrame. origin . x  = 46;

     self . detailTextLabel . frame  = tmpFrame;    

}

 

还有一种最直接 的方法 就是自定义一个cell。

posted @ 2015-06-08 08:12  小明MR  阅读(299)  评论(0编辑  收藏  举报