UITableViewCell与图像的权利?

有没有办法将UITableViewCell.image显示在单元格的右侧而不是左侧? 或者我需要在单元布局的右侧添加一个单独的UIImageView?

但是,您可以轻松地将图像视图作为附属视图添加到表格单元格,以获得相同的效果。

UIImageView *imageView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"foo.png"]]; cell.accessoryView = imageView; [imageView release]; 

对于简单的情况,你可以这样做:

 cell.contentView.transform = CGAffineTransformMakeScale(-1,1); cell.imageView.transform = CGAffineTransformMakeScale(-1,1); cell.textLabel.transform = CGAffineTransformMakeScale(-1,1); cell.textLabel.textAlignment = NSTextAlignmentRight; // optional 

这将翻转(镜像)将任何imageView放在右侧的内容视图。 请注意,您必须翻转imageView和任何文本标签,否则他们自己将被镜像! 该解决scheme保留了右侧的附件视图。

下面是使用accessoryView的方法在Swift中的一个例子:

 private let reuseIdentifier: String = "your-cell-reuse-id" // MARK: UITableViewDataSource func tableView(tableView:UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell { var cell : UITableViewCell? = tableView.dequeueReusableCellWithIdentifier(reuseIdentifier) as? UITableViewCell if (cell == nil) { cell = UITableViewCell(style:UITableViewCellStyle.Subtitle, reuseIdentifier:reuseIdentifier) } cell!.textLabel!.text = "Hello" cell!.detailTextLabel!.text = "World" cell!.accessoryView = UIImageView(image:UIImage(named:"YourImageName")!) return cell! } 

如果您不想制作自定义单元格并使用标准单元格,则至less有两种方法:

  1. 使用accessoryView。
 cell.accessoryView = UIImageView(image: UIImage(named: "imageName")) cell.accessoryView.frame = CGRectMake(0, 0, 22, 22) 
  1. 如果你想有正确的图像+ accessoryView,那么你可以添加UIImageView出口到ContentView(示例名称:rightImage),并将textLabel的背景颜色更改为Clear。
 cell.rightImage.image = UIImage(named: "imageName") cell.textLabel.backgroundColor = UIColor.clearColor() 

子类UITableViewCell并重写layoutSubviews ,然后调整self.textLabel,self.detailTextLabel和self.imageView视图的框架。

这是代码中的样子:

MYTableViewCell.h

 #import <UIKit/UIKit.h> @interface MYTableViewCell : UITableViewCell @end 

MYTableViewCell.m

 #import "MYTableViewCell.h" @implementation MYTableViewCell - (void)layoutSubviews { [super layoutSubviews]; if (self.imageView.image) { self.imageView.frame = CGRectMake(CGRectGetWidth(self.contentView.bounds) - 32 - 8, CGRectGetMidY(self.contentView.bounds) - 16.0f, 32, 32); CGRect frame = self.textLabel.frame; frame.origin.x = 8; self.textLabel.frame = frame; frame = self.detailTextLabel.frame; frame.origin.x = 8; self.detailTextLabel.frame = frame; } } @end 

要添加image @右手边的单元格,我build议你在右边创build一个带有imageview的自定义单元格,这对你非常有用。 并添加一个空的视图来链接这个nib与customcell类。

现在在你的单元格的nib文件中删除视图,添加tableViewcell,并在该单元格拖放一个imageView到右侧。

现在转到TableViewCell的类,说DemoCell,创build一个sockets,并将其与tablecell的笔尖imageview设置

现在,在tableview的cellforrowatindexpath方法中引用您的单元格,并像这样使用它的nib名称

 static NSString *CellIdentifier = @"Cell"; DemoCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier]; if (cell == nil) { cell = [[SettingCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier]; cell = [[[NSBundle mainBundle]loadNibNamed:@"DemoCell" owner:self options:nil] lastObject]; } 

并根据您的要求设置图像

cell.imageVw.img ….

你可以通过调用imageview的setFrame方法调整图像的大小,如下所示:[imageView setFrame:CGRectMake(0,0,35.0,35.0)];

这Soln是为每个细胞添加不同的图像….只是一个尝试

 // Customize the appearance of table view cells. - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath { static NSString *CellIdentifier = @"Cell"; UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier]; if (cell == nil) { cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier] autorelease]; } if(indexPath.row == 0) { cell.image = [UIImage imageNamed:@"image.png"]; } else if (indexPath.row == 1) { cell.image = [UIImage imageNamed:@"image1.png"]; } 

没有必要创build自己的图像,只需编辑cell.tintColor