2016-03-18 104 views
2
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的邊框不是設置圖像屬性

後的ImageView邊界不再光滑平整後。 這是爲什麼發生?

smooth image

not smooth image


UPDATE:

好像有毛病layer.radius,邊界光滑,即使在ImageView的設置圖像屬性中刪除後imageView.layer.cornerRadius = frame.size.width*0.5

enter image description here


更新2: 變成是與UICollectionViewCell有毛病,ImageView的是UICollectionViewCell

的一部分
+0

,您在設備捕獲此?你可以檢查真正的設備?這可能是由於您的顯示器屏幕分辨率而發生的。 –

+0

@NitinGohel設備上的相同 – PeiweiChen

+0

您是否嘗試更改cornerRadius值? –

回答

0

u可以使用2的ImageView 1顯示圖像和第二隱藏和顯示圓形圖像。

1st imageview按原樣顯示圖像。

第二imageview的,這將有白色背景和上述第1圖像和圖像的中間綠色圓圈將是透明的

like this

+0

我知道,但很好奇 – PeiweiChen

0

基本上,你的形象應該是一個正方形。不是做這些:

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

請與容易的完整的解決方案使用擴展https://stackoverflow.com/a/36102901/2125010

+0

您的解決方案無法正常工作。你的代碼和我的一樣。你可以嘗試收集視圖單元格演示 – PeiweiChen