안녕 얘들 아, 내 애니메이션을 사용자가 패닝하는 방식에 따라 좌우로 움직 이도록 만들려고 노력하고 있지만 작동하지 않아 잘못된 것을 파악할 수 없습니다. 제스처는 한 방향으로 만 작업 할 때 올바르게 작동했지만 moveLabel() 함수로 로직을 옮기면 더 이상 작동하지 않습니다. 애니메이션이 시작되지 않습니다. 내 목표는 동일한 애니메이션을 가지고 있기 때문에 (더 자세한 내용을 추가 할 것이므로) 팬 방향에 따라이 특정 레이블을 왼쪽이나 오른쪽으로 움직여야합니다. 이것은 지금 내 추위입니다UIViewPropertyAnimator 팬 방향에 따라 움직이는 애니메이션
import UIKit
class ViewController: UIViewController {
@IBOutlet weak var labelDummy: UILabel!
var labelAnimation = UIViewPropertyAnimator()
override func viewDidLoad() {
super.viewDidLoad()
labelDummy.center.x = view.bounds.maxX/2
view.addGestureRecognizer(UIPanGestureRecognizer(target: self, action: #selector(self.moveLabel)))
}
func moveLabel(gesture: UIPanGestureRecognizer){
let trans = gesture.translation(in: view)
if trans.x >= 0{
labelAnimation = UIViewPropertyAnimator(duration: 1.0, curve: .easeInOut) {
let yPos = self.labelDummy.center.y
self.labelDummy.center = CGPoint(x: 100 + (self.labelDummy.frame.size.width/2), y: yPos)
}
}
if trans.x < 0 {
labelAnimation = UIViewPropertyAnimator(duration: 1.0, curve: .easeInOut) {
let yPos = self.labelDummy.center.y
self.labelDummy.center = CGPoint(x: 10 + (self.labelDummy.frame.size.width/2), y: yPos)
}
}
labelAnimation.fractionComplete = abs((trans.x/100))
if gesture.state == .ended{
labelAnimation.fractionComplete = 0
}
print("fractionCompleted: ", labelAnimation.fractionComplete)
}
}
이 문제를 어떻게 해결할 수 있습니까?
일하는 코드 :
import UIKit
class ViewController: UIViewController {
@IBOutlet weak var labelDummy: UILabel!
var labelAnimation = UIViewPropertyAnimator()
override func viewDidLoad() {
super.viewDidLoad()
labelDummy.center.x = view.bounds.maxX/2
// Pan for hele viewen som spiller label animasjon
view.addGestureRecognizer(UIPanGestureRecognizer(target: self, action: #selector(self.moveLabel)))
// animasjon
labelAnimation = UIViewPropertyAnimator(duration: 1.0, curve: .easeInOut) {
let yPos = self.labelDummy.center.y
self.labelDummy.center = CGPoint(x: 10 + (self.labelDummy.frame.size.width/2), y: yPos)
}
//labelAnimation.startAnimation()
}
func moveLabel(gesture: UIPanGestureRecognizer){
print("retning: ", gesture.velocity(in: view).x)
let trans = gesture.translation(in: view)
print("trans: ", trans)
labelAnimation.fractionComplete = trans.x/100
print("fractionCompletet prøver å settes til : ", trans.x/100)
print(trans.x)
if gesture.state == .ended{
print("-ENDED-")
labelAnimation.fractionComplete = 0
}
print("fractionCompletet: ", labelAnimation.fractionComplete)
}
가}