2011-05-03 75 views

回答

120
cell.imageView.image = [UIImage imageNamed:@"image.png"]; 

UPDATE: 像史蒂芬费舍尔表示,这应该只是为了与风格UITableViewCellStyleDefault这是默认的风格细胞起作用。对于其他样式,您需要将UIImageView添加到单元格的contentView。

+2

如果你的单元格的UITableviewCellStyle属性错误,它不会有'imageView',所以你将无法以这种方式设置图像。我认为只有'UITableViewCellStyleDefault'支持这种方式的图像;否则,您需要添加自己的图像视图(请参阅Aman的答案)。 – 2012-02-07 23:34:53

+0

其实如果你使用的是自定义单元格,你不应该像Aman那样做 - 你应该添加视图到cell.contentView,而不是直接添加到单元格。 – 2012-02-07 23:36:31

+0

但关于单元格样式,你是对的,只有默认单元格支持imageView - https://developer.apple.com/library/ios/#documentation/UIKit/Reference/UITableViewCell_Class/Reference/Reference.html#//apple_ref/c/econst/UITableViewCellStyleDefault – 2012-02-07 23:37:51

20

试试这个代码: -

UIImageView *imv = [[UIImageView alloc]initWithFrame:CGRectMake(3,2, 20, 25)]; 
imv.image=[UIImage imageNamed:@"arrow2.png"]; 
[cell addSubview:imv]; 
[imv release]; 
+0

把上面的代码里面的方法 - (的UITableViewCell *)的tableView:(UITableView的*)的tableView \t \t的cellForRowAtIndexPath:(NSIndexPath *)indexPath { – 2011-05-03 12:56:58

+0

代替直接加入到细胞使用的[cell.contentView addSubview:IMV]; – 2014-10-31 06:21:18

13

标准的UITableViewCell已经包含了UIImageView,如果它的图像被设置,它会出现在所有标签的左边。您可以使用ImageView的属性来访问它:

cell.imageView.image = someImage; 

如果由于某种原因,标准行为不适合您的需要(请注意,您可以自定义标准图像视图属性),那么你可以将自己的UIImageView添加到小区阿曼在回答中建议。但是在这种方法中,您必须自己管理单元格的布局(例如,确保单元格标签不会与图像重叠)。而且不添加子视图直接的细胞 - 它们添加到单元格的内容查看:

// DO NOT! 
[cell addSubview:imv]; 
// DO: 
[cell.contentView addSubview:imv]; 
5

对于我的同胞SWIFT用户,这里是你需要的代码:

let imageName = "un-child-rights.jpg" 
let image = UIImage(named: imageName) 
cell.imageView!.image = image