设置图像属性后,圆形图像的边框不平滑

时间:2016-03-18 06:45:51

标签: ios swift uiimageview

class PPAvatarCollectionCell: UICollectionViewCell {
    var imageView:UIImageView!

override init(frame: CGRect) {
    super.init(frame: frame)

    imageView = UIImageView(frame: CGRect(origin: CGPointMake(0, 0), size: CGSizeMake(frame.size.width, frame.size.height)))

    self.addSubview(imageView)

    imageView.contentMode = .ScaleAspectFill
    imageView.backgroundColor = UIColor.whiteColor()

    imageView.layer.borderColor = UIColor.greenColor().CGColor
    imageView.layer.borderWidth = 10
    imageView.image = UIImage(named: "demo")
    imageView.layer.cornerRadius = frame.size.width*0.5
    imageView.clipsToBounds = true

}

上面的代码,边框很流畅 但在添加imageView.image = UIImage(named: "demo")

之后

imageView的边框不再平滑。 为什么会这样?

smooth image

not smooth image

更新:

看来layer.radius有问题,即使在删除imageView.layer.cornerRadius = frame.size.width*0.5后的imageView上设置了图片属性,边框也很流畅

enter image description here

更新2: 结果是UICollectionViewCell有问题,imageView是UICollectionViewCell的一部分

2 个答案:

答案 0 :(得分:0)

你可以使用2个imageview 1显示图像,第二个隐藏并显示圆形图像。

第1张imageview显示原样。

在第一张图像和图像中间有白色背景和绿色圆圈的第二张图像视图将是透明的

like this

答案 1 :(得分:0)

基本上,你的形象应该是正方形。比这些:

imageView.layer.cornerRadius = self.frame.height / 2
imageView.layer.masksToBounds = false
imageView.clipsToBounds = true
imageView.image = "yourSquareImage"

使用 轻松使用 扩展程序检查完整解决方案: https://stackoverflow.com/a/36102901/2125010