如何在 Collectionview 单元格中为 Uiimageview 设置圆角

Posted

技术标签:

【中文标题】如何在 Collectionview 单元格中为 Uiimageview 设置圆角【英文标题】:How to set rounded corner for Uiimageview in Collectionview cell 【发布时间】:2017-07-30 12:08:46 【问题描述】:

我正在尝试按照以下设计制作UICollectionviewCell

我已经为单元格设置了圆角半径,但是当在collectonview 上加载数据时,imageview 没有得到圆角。我得到的输出如下

圆角被应用到单元格而不是图像。这是我正在应用的代码。代码应用于collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell

cell.layoutIfNeeded()

cell.layer.cornerRadius      = 15

cell.imageView.clipsToBounds = true

cell.layer.masksToBounds     = true

谁能帮我解决这个问题。

提前谢谢....

【问题讨论】:

寻求调试帮助的问题必须包括相关代码,才能被视为关于 SO 的主题。请参阅How to create a minimal, complete and verifiable example 并在您的问题中包含相关代码。你确定你同时为UIImageView设置了圆角半径和clipsToBounds = true,而不仅仅是为集合视图单元格? 您找到解决方案了吗?我也遇到了同样的问题。 【参考方案1】:

你需要设置imageView layer corner半径:-

cell.imageView.layer.cornerRadius = 15
cell.imageView.layer.masksToBounds = true

【讨论】:

我不想为 imageView 设置圆角半径。角半径仅设置为单元格。【参考方案2】:

这样做:

cell.contentView.layer.cornerRadius = 2.0
cell.contentView.layer.borderWidth = 1.0
cell.contentView.layer.borderColor = UIColor.clear.cgColor
cell.contentView.layer.masksToBounds = true;

如果你想给背景添加一个漂亮的阴影:

cell.layer.shadowColor = UIColor.lightGray.cgColor
cell.layer.shadowOffset = CGSize(width:0,height: 2.0)
cell.layer.shadowRadius = 2.0
cell.layer.shadowOpacity = 1.0
cell.layer.masksToBounds = false;
cell.layer.shadowPath = UIBezierPath(roundedRect:cell.bounds, cornerRadius:cell.contentView.layer.cornerRadius).cgPath

【讨论】:

【参考方案3】:

您还可以使用“用户定义的运行时属性”将角半径设置为您的图像视图 关键路径 - layer.cornerRadius 类型 - 编号 值 - 你的拐角半径值

【讨论】:

我不想为 imageView 设置圆角半径。角半径仅设置为单元格。【参考方案4】:

你可以说:cell.clipsToBounds = true

【讨论】:

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

如何在 collectionView 单元格中添加可滚动视图

如何快速更新消息 CollectionView 单元格中的数据?

如何将操作按钮添加到 collectionView 的部分单元格中?

从popover返回后如何在collectionview单元格中填充文本字段

如何在 tvos 应用程序的 collectionview 单元格中的按钮上移动焦点?

如何将手势识别器添加到collectionview单元格中的uiview