2016-11-01 20 views
0

私はいくつかのimageviewsを含むカスタムビューを作った。しかし、彼らは奇妙な境界の不具合を持っています:画像のエッジからオフセットがあり、背景色を明らかにしています。ImageViewの奇妙なボーダーグリッチ

enter image description here

これは私が画像ビューを作成する方法である:

 for (index, image) in self.images.enumerated() 
     { 
      if index == maxIndex { 
       break 
      } 

      let imageView = UIImageView(frame: CGRect(x: offsetX, y: 0, width: self.height, height: self.height)) 
      imageView.cornerRadius = self.height/2 
      imageView.contentMode = .scaleAspectFill 
      imageView.image = image 
      imageView.layer.borderColor = UIColor.white.cgColor 
      imageView.layer.borderWidth = 2 
      self.addSubview(imageView) 
      self.imageViews.append(imageView) 

      offsetX += self.height/2 + 5 
     } 

imageviews下にはビューがありません。サブビュー数は4

+0

不明確あなたが求めているもの。何を聞いていますか?あなたが話している "不具合"はどこですか?質問はなんですか? – matt

+0

@matt白い枠線は、端から少しオフセットしています – Edward

+0

画像の外側にある太い「リング」は意図的ではないという問題がありますか?それですか?あなたは実際に何をしたいの写真を撮るべきですか?または少なくともそれを記述する? – matt

答えて

1

これはエイリアシングの問題です。境界線の一部のエッジピクセルは半透明です。そのため、下にあるコンテンツを見ることができます。

あなたはサークルパスを持つカスタムCAShapeLayerを追加してみてくださいすることができます

let border = CAShapeLayer() 
border.frame = imageView.bounds 
border.lineWidth = 4 //doubled width 
border.path = UIBezierPath(ovalIn: border.bounds).cgPath 
border.strokeColor = UIColor.white.cgColor 
border.fillColor = UIColor.clear.cgColor 
imageView.layer.addSublayer(border) 
+0

答えをありがとう!広がっても助けにならなかった。カスタムレイヤーを試してみます。 – Edward

+1

ようこそ。答えをコードで更新しました。 – alexburtnik

+0

魅力のように動作します、もう一度ありがとうございます:3 – Edward