J'utilise drawRect pour dessiner une forme assez simple (bleu foncé dans l'image ci-dessous). Je voudrais que cela anime de la gauche vers la droite, de sorte qu'il se développe. Le bémol ici est que j'ai besoin d'un fond "max" en gris, comme on le voit dans la partie supérieure de l'image.Utilisation de drawRect pour dessiner et animer deux graphiques. Un graphique d'arrière-plan et un graphique de premier plan
En ce moment, je simule cette animation en superposant une vue blanche, puis en animant sa taille, de sorte que le bleu semble s'animer vers la droite. Alors que cela fonctionne ... J'ai besoin de la forme grise de fond pour toujours être là. Avec ma vue blanche superposée, cela ne fonctionne tout simplement pas.
Voici le code pour dessiner le « code actuel » Version: partie
let context = UIGraphicsGetCurrentContext()
CGContextMoveToPoint(context, 0, self.bounds.height - 6)
CGContextAddLineToPoint(context, self.bounds.width, 0)
CGContextAddLineToPoint(context, self.bounds.width, self.bounds.height)
CGContextAddLineToPoint(context, 0, self.bounds.height)
CGContextSetFillColorWithColor(context,UIColor(red: 37/255, green: 88/255, blue: 120/255, alpha: 1.0).CGColor)
CGContextDrawPath(context, CGPathDrawingMode.Fill)
Comment puis-je animer la partie bleue de gauche à droite, tout en gardant le « max » grise du graphique toujours visible?
@SVGred - Wow, c'est génial! Pour l'essentiel, c'est exactement ce dont j'ai besoin! Je vais devoir le modifier un peu, mais c'est sur moi. Avec ma première implémentation du graphe, j'ai sous-classé UIView avec override func drawRect (rect: CGRect). N'aurai-je pas besoin de remplacer drawRect pour votre version? Aussi - pouvez-vous expliquer la toute dernière ligne? (layerTwo.addAnimation) J'ai également édité votre message à la syntaxe swift 2.3. Joue bien sur ma fin! – Joe
@SVGreg avec plusieurs versions de Swift étant utilisé, il serait bon de mentionner que vous écrivez la réponse. – Dravidian
@Joe: drawRect est requis uniquement pour dessiner du contenu personnalisé à l'intérieur de la vue. La réponse est - Non - vous n'avez pas besoin de surcharger * drawRect * pour utiliser mon code. addAnimation exécute réellement l'animation dont vous avez besoin.Vous pouvez le personnaliser à n'importe quelle animation que vous préférez. – SVGreg