に取り組んでいます、
私は私のカスタム内部UIBezierPathは(_ RECT:CGRect)を描画するUIView持っ 機能を。パスをグラデーションカラーで塗りつぶしたいと思います。
、我々は勾配のためのマスク層を必要とする
let gradient = CAGradientLayer()
gradient.frame = path.bounds
gradient.colors = [UIColor.magenta.cgColor, UIColor.cyan.cgColor]
、グラデーションを作成するには
let path = UIBezierPath(ovalIn: CGRect(x: 0, y: 0, width: 100, height: 100))
、あなたが楕円形のパスを持っている
今すぐ設定
let shapeMask = CAShapeLayer()
shapeMask.path = path.cgPath
を言うことができますこのshapeLayer
としてmask
のgradient
層とは、ストロークとベース層を作成subLayer
gradient.mask = shapeMask
yourCustomView.layer.addSublayer(gradient)
更新 としてview
の層にそれを追加し、グラデーションレイヤーを作成する前に追加します。
let shape = CAShapeLayer()
shape.path = path.cgPath
shape.lineWidth = 2.0
shape.strokeColor = UIColor.black.cgColor
self.view.layer.addSublayer(shape)
let gradient = CAGradientLayer()
gradient.frame = path.bounds
gradient.colors = [UIColor.magenta.cgColor, UIColor.cyan.cgColor]
let shapeMask = CAShapeLayer()
shapeMask.path = path.cgPath
gradient.mask = shapeMask
self.view.layer.addSublayer(gradient)
の可能性のある重複[スイフト:ベジエ・パスに沿って勾配(CALayersを使用)](http://stackoverflow.com/questions/27931076/swift-gradient-along-a-bezier-path-using-calayers ) –
これを参照してくださいhttp://stackoverflow.com/questions/23074539/programmatically-create-a-uiview-with-color-gradient –
@ArtemNovichkov私は既にスレッドを調査したが、グラデーションでUIBazierPathを埋めることは何もない。私の意図はUIBazierPathではなく完全な視点ではありません。コメントをありがとう。 –