2017-07-11 3 views
1

これはXcodeでどのように達成できるのでしょうか?これはプロファイルの一部なので、ヘッダーは実際のUIImageViewですが、その下のカーブは、その達成方法がわかりません。何か案は?UIImageのシェイプ/マスク?

enter image description here

+0

画像が読み込まれません。あなたは何を試しましたか? – Scriptable

+0

なぜそれがあなたのために読み込まれないのか分かりません。私は二次的な 'UIImageView'を作成し、それをヘッダーイメージの上のマスクとして使用することを考えていましたか? – Dani

+0

[CALayerとUIImageを使用してSwiftで画像をマスクする]の可能な複製(https://stackoverflow.com/questions/27699098/masking-an-image-in-swift-using-calayer-and-uiimage) – the4kman

答えて

2

これは、ヘッダビューUIBezierPathを与えることによって、しかし、あなたはその原料を行うにはしたくない場合に達成することができます。

私はすばらしいやり方を見つけました。

ヘッダービューには画像が含まれています(HeaderImageと言うことがあります)。

  • イメージを作成する(MaskImageと呼ぶ)。

    let path = UIImageView.init(image: #imageLiteral(resourceName: "MaskImage")) 
    
  • ヘッダーイメージにこのマスクを適用します。

    HeaderImage.mask = path 
    

それはあなたのために働く願っています。

が円状にUIBezierPathを作成します:

let path = UIBezierPath(ovalIn:CGRect(x: 0, y: view.bounds.height/2, width: view.bounds.width, height: view.bounds.height)).cgPath 
+0

これはまさに私は実際に考えていた!ありがとうございます – Dani

2

は、私たちがこのような何かを行うことができ灰色の領域は、あなたの円弧と下の灰色の四角形の外に、トップ別の四角形の上に構築されていることを言います

上部の矩形に適用します。

let overlay = CAShapeLayer() 
overlay.path = path 
overlay.fillColor = UIColor.gray.cgColor 
overlay.shouldRasterize = true 
view.layer.addSublayer(overlay) 

これで完璧なサークルが作成されますが、好みのシェイプを得るためにCGRectの好みを調整できます。

+0

私はこれも試してみます、ありがとう! – Dani