为 tableview 单元格图像创建圆形图片

Posted

技术标签:

【中文标题】为 tableview 单元格图像创建圆形图片【英文标题】:creating circular pics for tableview cell images 【发布时间】:2017-02-27 23:54:57 【问题描述】:

我正在尝试在 tableview 单元格中使图像成为圆形,我有我在 *** 上看到的各种方式,但这是我得到的最接近的方式:

如您所见,它们看起来更像是椭圆而不是圆圈。在情节提要中,我将约束设置为保持纵横比 1:1 和视图模式“纵横比填充”。我将这个 UIImage 扩展用于圆形:

extension UIImage 
  var circleMask: UIImage 
    let square = CGSize(width: min(size.width, size.height), height: min(size.width, size.height))
    let imageView = UIImageView(frame: CGRect(origin: CGPoint(x: 0, y: 0), size: square))
    imageView.contentMode = UIViewContentMode.scaleAspectFill
    imageView.image = self
    imageView.layer.cornerRadius = square.width/2
    imageView.layer.borderColor = UIColor.white.cgColor
    imageView.layer.borderWidth = 5
    imageView.layer.masksToBounds = true
    UIGraphicsBeginImageContext(imageView.bounds.size)
    imageView.layer.render(in: UIGraphicsGetCurrentContext()!)
    let result = UIGraphicsGetImageFromCurrentImageContext()
    UIGraphicsEndImageContext()
    return result!
  

这就是我的 cellForRowAt IndexPath 的样子:

  let cell = detailTableView.dequeueReusableCell(withIdentifier: castResuseIdentifier)
    as! CastCell

  let cast = castArray[indexPath.row]

  cell.actorName.text = cast.name
  cell.characterName.text = cast.character
  cell.actorProfileImage.image = castImageArray[indexPath.row].circleMask

  self.detailTableView.rowHeight = 100
  detailTableView.allowsSelection = true

  return cell

不知道为什么它们不是完美的圆,知道吗?

【问题讨论】:

试过了,它只是让它看起来像带圆边的正方形 对不起,我意识到我的上一条评论不正确,所以我删除了它。顺便说一句,你试过这个:***.com/a/39515254/58129 吗? 您确定circleMask 仅在布局完成后才被调用吗? @AnthonyKong 成功了,谢谢! 【参考方案1】:

这是实现该效果的一种非常糟糕的方式,因为您正在创建一个 UIImageView 并每次都将其渲染到单独的图像上下文中。

如需快速简便的方法,只需在CastCell 中为actorProfileImage 视图的图层设置cornerRadius 属性。

【讨论】:

【参考方案2】:

不使用扩展,而是将其添加到 cellForRowAtIndexPath 中,图像变成圆形

 cell.actorProfileImage.layer.cornerRadius = cell.actorProfileImage.frame.size.height/2
  cell.actorProfileImage.clipsToBounds = true
  cell.actorProfileImage.layer.masksToBounds = true

【讨论】:

以上是关于为 tableview 单元格图像创建圆形图片的主要内容,如果未能解决你的问题,请参考以下文章

在 UITableviewCell 中创建圆形图像而不自定义 Cell

表格视图单元格中的圆形图像 swift

UITableView 单元格方形而不是圆形

UICollectionView 椭圆形自定义单元格

UICollectionViewCell - 圆形下载图像

在uitableview中带有空格填充的圆形单元格