如何在 tableView 单元格中圆化 UIImageView 的角

Posted

技术标签:

【中文标题】如何在 tableView 单元格中圆化 UIImageView 的角【英文标题】:How to round the courners of a UIImageView in a tableViewCell 【发布时间】:2011-12-29 05:22:52 【问题描述】:

我正在尝试使用以下代码使 uiimagview 在 tableviewcell 中具有圆角:

#import <QuartzCore/QuartzCore.h>    
(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath

    HomepwnerItemCell *cell = (HomepwnerItemCell *)[tableView dequeueReusableCellWithIdentifier:@"UITableViewCell"];    

    Possession *possession = [self.possessions objectAtIndex:indexPath.row];
    cell.valueLabel.text = [@"$" stringByAppendingString:[[NSNumber numberWithInt:possession.valueInDollars] stringValue]];
    cell.nameLabel.text = possession.possessionName;

    UIImage *image = [[ImageCache sharedImageCache] imageForKey:possession.imageKey];      
    UIImageView *roundedImage = [[UIImageView alloc] initWithImage:image];
    roundedImage.layer.masksToBounds = YES;
    roundedImage.layer.cornerRadius = 10.0;
    cell.imageView = roundedImage;
    // cell.imageView.image = [[ImageCache sharedImageCache] imageForKey:possession.imageKey];
    return cell;

但是当我运行它时,tableViewCells 中的图像显示为空白。

如果我只做cell.imageView.image = [[ImageCache sharedImageCache] imageForKey:possession.imageKey];(但没有圆角)效果很好

我做错了什么?

【问题讨论】:

cell.imageView = [roundedImage Image];试试这个。 错误:自动引用计数问题:接收器类型“UIImageView”例如消息未声明带有选择器“图像”的方法 检查UIImage *image是否分配了内存? 除非你没有完整地粘贴上面的方法,你需要先修复你的 tableView:cellForRowAtIndexPath: 代码,然后再担心圆角。如果没有可重复使用的单元格,您将在其中无处分配新单元格?? ios5新增:“如果没有可以回收的现有单元格,dequeueReuseableCell会自动制作原型单元格的新副本并返回给您。” 【参考方案1】:

你需要使用石英框架。这是转弯和为图像添加边框的代码

cell.imageView.layer.cornerRadius = 10.0;
cell.imageView.layer.borderColor = [UIColor blackColor].CGColor;

cell.imageView.layer.borderWidth = 1.2;
cell.imageView.clipsToBounds = YES;

首先将Image设置为imageview,然后更改imageview层

【讨论】:

但我有#import &lt;QuartzCore/QuartzCore.h&gt; 你能看到没有“角落”代码的图像吗?您正在设置的图像的尺寸是多少 啊,这行得通,显然我只需要先设置图像,然后再更改图像视图层。 cell.imageView.layer.cornerRadius = [cell.imageView.image size].height /2; //给你一个圆形的图像。【参考方案2】:

使用

cell.imageView.layer.cornerRadius=20;  //Use as ur specified corner length

也实现了

  <QuartzCore/QuartzCore.h>

【讨论】:

以上是关于如何在 tableView 单元格中圆化 UIImageView 的角的主要内容,如果未能解决你的问题,请参考以下文章

如何让共享按钮在 tableview 单元格中快速工作?

iOS如何从tableview单元格中获取按钮文本

如何使用 UIImage 从 tableview 单元格中的 url 平滑滚动

如何使tableView中单元格中的图像一致显示?

如何在tableview单元格中输入3个不同的图像?

如何在 swift 3 中的 tableview 单元格中添加带有自定义视图的 collectionView?