Swift - 图像上的cornerRadius不起作用

时间:2017-11-24 16:00:33

标签: swift image uiimageview cornerradius

在我的tableviews自定义单元格中,我有一张图片:

Image of my tableview

我想得到cornerRadius = 20。 但出于某种原因,我已经使用了这段代码而无法工作:

cell.offerImage.layer.cornerRadius = 20
cell.offerImage.clipsToBounds = true

Imageview内容模式是Aspect Fit。这很有趣,因为我试图玩它,当我使用时:

cell.offerImage.layer.cornerRadius =  cell.offerImage.frame.size.width / 2

我得到了一些奇怪的角落,而不是我预期的那一轮。就像cornerRadius在imageView而不是图像上,我不知道图像的精确尺寸(从服务器上传)。

3 个答案:

答案 0 :(得分:1)

这对我有用 我检查了 .xib 文件中的 clipsToBound

imageView.layer.cornerRadius = 50

答案 1 :(得分:0)

问题是UIImageView上的角半径 UIImage上没有,因为您正在使用 Aspect Fit ,你的形象可能不会填满角落。

您需要根据从服务器获取的图片尺寸来调整UIImageView的尺寸。

从图片中看,您可以调整图片的宽度。我建议您为设置@IBOutlet宽度的约束设置UIImageView,然后在设置图片时调整constant

@IBOutlet weak var imageViewWidth: NSLayoutConstraint!

然后

imageViewWidth.constant = imageViewHeight * image.size.width / image.size.height

其中imageViewHeightimageView的高度。如果您不了解它,可以通过为UIImageView创建一个插座然后获取其.frame.height来获取它。

答案 2 :(得分:0)

您需要添加

imageView.clipsToBounds = true