UITableViewCell 右侧有一张图片

Posted

技术标签:

【中文标题】UITableViewCell 右侧有一张图片【英文标题】:UITableViewCell with an image on the right side 【发布时间】:2012-04-04 15:12:38 【问题描述】:

我想在 UITableViewCell 的右侧显示图像。 我正在使用此代码来执行此操作:

CGRect imageRect = 80,0,225,44;
UIImageView *uiv = [[UIImageView alloc] initWithFrame:imageRect];
[uiv setImage:[UIImage imageNamed:[NSString stringWithFormat:@"star%@.png", [[self reataurant] valueForKey:@"stars"]]]];
[uiv setClipsToBounds:YES];
[cell addSubview:uiv];

我的问题是,当我滚动表格视图时,图像显示在其他单元格中。 我做错了什么?

【问题讨论】:

http://***.com/questions/780395/uitableviewcell-with-image-on-the-right 的可能重复项 【参考方案1】:

可能发生的情况是,您不希望重复使用已有图像的单元格。检查

a) 当您重复使用一个单元格时,如果它有星形图像,则将其删除。

b) 在返回单元格之前,在该点添加星号(使用任何测试来确定星号是否应该出现)。

【讨论】:

【参考方案2】:

那些 UITableViewCell 被重用。在你的 cellForRowAtIndexPath 中查找

UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:cellIdentifier];

如果您只希望一个或某组单元格具有此特定布局,则可以为这些单元格传递不同的 cellIdentifier。

【讨论】:

【参考方案3】:

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

下面是示例代码,供大家理解:

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

并确保您通过使用单元格标识符在 cellForRowAtIndexPath 方法中重用表格视图的单元格空间,以便消除覆盖问题;)

NSString *CellIdentifier = [NSString stringWithFormat:@"S%1dR%1d",indexPath.section,indexPath.row]; 

UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];

if (cell == nil) 

   cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier] autorelease];

希望这能解决您的图像显示在另一个问题上的问题,谢谢 :)

【讨论】:

以上是关于UITableViewCell 右侧有一张图片的主要内容,如果未能解决你的问题,请参考以下文章

UIImage 作为 UITableViewCell 中的辅助视图未显示

UITableViewCell 自定义图片大小、阴影和边框

IOS - 按钮从右侧动画滑入

在 UITableViewCell 中设置动态子视图位置

WPF图片部分显示问题!求高人指点!

UITableViewCell 异步图片加载布局