Comment animer/déplacer la vue dans le chemin de la courbe, est-il possible d'utiliser UIAnimation. Comme pour déplacer une vue dans le chemin comme dans l'image.Comment déplacer une vue le long d'un tracé courbe dans iOS
10
A
Répondre
8
Vous pouvez le faire en utilisant Core Animation et CAKeyFrameAnimation pour définir les points de la courbe. Consultez ce tutoriel: http://nachbaur.com/2011/01/07/core-animation-part-4/
-6
Vous pouvez empiler des animations en les imbriquant dans la clause d'achèvement.
0
Au-dessus, on peut être achived par: -
i) CAKeyframeAnimation ii) Create Curve Path iii) Animate couche de vue personnalisée
import UIKit
import CoreGraphics
class ViewController: UIViewController {
var moveAlongPath:CAAnimation!
override func viewDidLoad() {
super.viewDidLoad()
addAnimation()
initiateAnimation()
}
func curevedPath() -> UIBezierPath {
let path = createCurvePath()
let shapeLayer = CAShapeLayer()
shapeLayer.path = path.cgPath
shapeLayer.strokeColor = UIColor.blue.cgColor
shapeLayer.fillColor = UIColor.clear.cgColor
shapeLayer.lineWidth = 1.0
self.view.layer.addSublayer(shapeLayer)
return path
}
func addAnimation() {
let moveAlongPath = CAKeyframeAnimation(keyPath: "position")
moveAlongPath.path = curevedPath().cgPath
moveAlongPath.duration = 5
moveAlongPath.repeatCount = HUGE
moveAlongPath.calculationMode = kCAAnimationPaced
moveAlongPath.timingFunctions = [CAMediaTimingFunction(name: kCAMediaTimingFunctionEaseOut)]
self.moveAlongPath = moveAlongPath
}
func initiateAnimation() {
let layer = createLayer()
layer.add(moveAlongPath, forKey: "animate along Path")
}
//MARK:- Custom View Path
func createLayer() -> CALayer {
let customView = CustomView(frame: CGRect(x: 0, y: 0, width: 50, height: 50))
self.view.addSubview(customView)
let customlayer = customView.layer
customlayer.bounds = CGRect(x: 0, y: 0, width: 50, height: 50)
customlayer.position = CGPoint(x: 25, y: 25)
return customlayer
}
//MARK:- Custom Curve Path
func createCurvePath() -> UIBezierPath {
let path = UIBezierPath()
path.move(to: CGPoint(x: 10, y: 200))
path.addQuadCurve(to: CGPoint(x: 300, y: 200), controlPoint: CGPoint(x: 150, y: 10))
return path
}
}
class CustomView:UIView {
override init(frame: CGRect) {
super.init(frame: frame)
setUpView()
}
func setUpView() {
let image = UIImage(named: "Go.png")
let imageView = UIImageView(image: image)
imageView.frame = CGRect(x: 0, y: 0, width: self.bounds.width, height: self.bounds.height)
addSubview(imageView)
}
required init?(coder aDecoder: NSCoder) {
fatalError("init(coder:) has not been implemented")
}
}
Questions connexes
- 1. Tracé R, courbe lisse
- 2. Déplacer le contrôle le long du chemin
- 3. Animate Sprite le long d'un chemin de courbe dans XNA
- 4. Déplacer une imageview le long d'un chemin
- 5. animer l'image le long de la courbe
- 6. Déplacer un objet dans le sens d'une courbe de Bézier?
- 7. Dessinez le tracé du tracé dans Quartz 2D iOS
- 8. comment présenter le texte long dans iOS?
- 9. Histogramme de tracé et courbe de densité sur une carte
- 10. Comment déplacer une vue dans une autre vue du storyboard
- 11. Dessin d'un texte le long d'un tracé dans QuartzCore
- 12. Points se déplaçant le long d'une courbe dans MATLAB
- 13. Cocos2d - Déplacer le sprite dans un chemin courbe
- 14. Tracé principal: Déplacer uniquement Données
- 15. Je veux passer de la vue rectangle à la vue de la courbe dans ios
- 16. Se déplacer le long d'un chemin en touchant
- 17. position des sphères le long d'une courbe bezier
- 18. Positionner des images le long d'une courbe de Bézier
- 19. Écrire du texte le long d'une courbe en Java
- 20. K signifie qu'il faut trouver le coude lorsque le tracé du coude est une courbe lisse
- 21. ios: lat/long dans le rectangle
- 22. Animer un objet le long d'un chemin tracé?
- 23. Déplacer une image le long d'un chemin prédéterminé?
- 24. Dessiner du texte le long de la courbe de bezier dans paper.js
- 25. Signification des nœuds lors du tracé d'une courbe NURBS?
- 26. HTML5 Déplacer l'image le long du chemin
- 27. Déplacer un sprite le long d'une pente
- 28. tracé d'une courbe de la série temporelle mobile
- 29. Déplacez une imageVue le long d'un chemin circulaire
- 30. Comment puis-je dessiner une courbe dont l'épaisseur varie le long de son trajet?
Merci... Je vais vérifier –
Cet exemple fait référence à l'animation des calques, pas à des vues entières. J'ai un cas où je dois déplacer tout un UIView sur un chemin. Je peux facilement utiliser animateWithDuration pour l'obtenir d'ici à là, mais je ne peux pas voir comment l'utiliser pour l'obtenir d'ici à là en utilisant un chemin donné. Lorsque j'essaie d'enchaîner plusieurs appels animateWithDuration, le dernier appel annule toujours les appels précédents. – EFC