Pour répondre à cette question de la vôtre,
J'ai un UIBezierPath dans mon habitude UIView dessiner (_ rect: CGRect) fonction . Je voudrais remplir le chemin avec une couleur dégradée.
Disons que vous avez un chemin ovale,
let path = UIBezierPath(ovalIn: CGRect(x: 0, y: 0, width: 100, height: 100))
Pour créer un gradient,
let gradient = CAGradientLayer()
gradient.frame = path.bounds
gradient.colors = [UIColor.magenta.cgColor, UIColor.cyan.cgColor]
Nous avons besoin d'une couche de masque pour gradient,
let shapeMask = CAShapeLayer()
shapeMask.path = path.cgPath
maintenant réglé ce shapeLayer
comme mask
de gradient
couche et l'ajouter à la couche de view
comme subLayer
gradient.mask = shapeMask
yourCustomView.layer.addSublayer(gradient)
Mise à jour Créer une couche de base ayant subi un AVC et ajouter avant de créer la couche gradient.
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)
double possible de [Swift: gradient le long d'un chemin de Bézier (en utilisant CALayers)] (http://stackoverflow.com/questions/27931076/swift-gradient-along-a-bezier-path-using-calayers –
voir ceci http://stackoverflow.com/questions/23074539/programmatically-create-a-uiview-with-color-gradient –
@ArtemNovichkov J'ai déjà exploré le fil, il n'y a rien sur le remplissage d'un UIBazierPath avec gradient. Mon intention n'est pas la vue complète plutôt un UIBazierPath. Merci pour le commentaire cependant. –