У меня есть жест смахивания в моем приложении, когда вы проводите пальцем, он меняет текст на экране. Как мне сделать так, чтобы он выглядел так, будто он скользит к новому тексту, а не просто мгновенно меняет текст?
Добавьте анимацию для жестов смахивания в Swift
comment
зачлул, мой ответ имеет смысл??
- person Shailesh Chandavar   schedule 30.06.2015
Ответы (1)
Вы можете сделать одну вещь !!! добавить вид за своим жестом, этот вид должен выглядеть так же, как вид жеста (должен даже иметь тот же текст), и однажды после распознавания жеста перенесите этот вид перед вашим жестом, просмотрите его. должен иметь старый текст (не обновлять текст) и обновлять текстовые представления вашего жеста, которые он перемещает за недавно добавленным представлением, просто измените рамку вновь добавленного представления, чтобы оно давало эффект скольжения (изменение его ширины) один раз после завершающая анимация возвращает этот вид в режим просмотра жестов и меняет его кадр на предыдущее его значение.
проверьте этот образец:
func handleGesture(sender:UISwipeGestureRecognizer) {
//bring background view to front
self.view.bringSubviewToFront(self.backGroundView)
self.gestureView.userInteractionEnabled = false
//capture its initialAutolayout constraint
let backgroundViewSpaceConstarint = self.backGroundViewLeftSpaceConstraint.constant
UIView.animateWithDuration(2, animations: { [unowned self]() -> Void in
self.someRandomValue++
// update text label in gesture view which is behind background View
self.gestureViewTextLabel.text = "swiped \(self.someRandomValue) times"
//slide backgroundView in required direction by using autolayout
self.backGroundViewLeftSpaceConstraint.constant = self.backGroundView.bounds.size.width
self.backGroundView.layoutIfNeeded()
}) { [unowned self](completion:Bool) -> Void in
//after animation complition bring gesture view to the front.
self.backgroundTextLabel.text = "swiped \(self.someRandomValue) times"
self.gestureView.userInteractionEnabled = true
//upadte background view so that it will look the same for next swipe
self.backGroundViewLeftSpaceConstraint.constant = backgroundViewSpaceConstarint
//send the background view behind gesture view
self.view.sendSubviewToBack(self.backGroundView)
}
}
person
Shailesh Chandavar
schedule
30.06.2015