Я пытаюсь реализовать анимацию, как описано в этом Учебном пособии , используя Hero-Framework.
В данный момент я нахожусь на Шаг 3 в Учебном пособии где пользователь должен иметь возможность перетащить вид. Однако это не работает для меня. Это мой код:
// define a small helper function to add two CGPoints
func addCGPoints (left: CGPoint, right: CGPoint) -> CGPoint {
return CGPoint(x: left.x + right.x, y: left.y + right.y)
}
// handle swqipe down gesture
@objc private func handlePan(gestureRecognizer:UIPanGestureRecognizer) {
switch panGR.state {
case .began:
// begin the transition as normal
dismiss(animated: true, completion: nil)
case .changed:
// calculate the progress based on how far the user moved
let translation = panGR.translation(in: nil)
let progress = translation.y / 2 / view.bounds.height
Hero.shared.update(progress)
// update views' position based on the translation
Hero.shared.apply(modifiers: [.position(addCGPoints(left: translation, right: self.wishlistBackgroundView.center))], to: self.wishlistBackgroundView)
Hero.shared.apply(modifiers: [.position(addCGPoints(left: translation, right: self.dismissWishlistViewButton.center))], to: self.dismissWishlistViewButton)
Hero.shared.apply(modifiers: [.position(addCGPoints(left: translation, right: self.menueButton.center))], to: self.menueButton)
default:
// end the transition when user ended their touch
Hero.shared.finish()
}
}
Вот как я настроил ViewController
:
view.addSubview(wishlistBackgroundView)
view.addSubview(dismissWishlistViewButton)
view.addSubview(menueButton)
wishlistBackgroundView.addSubview(wishlistView)
wishlistView.addSubview(wishlistLabel)
wishlistView.addSubview(wishlistImage)
wishlistView.addSubview(theTableView.tableView)
wishlistView.addSubview(addWishButton)
. Прямо сейчас вид не перетаскивается, как показано в руководстве. Шаг 1 и Шаг 2 работают отлично, но каким-то образом обновление позиции представлений на основе перевода не работает для меня.
Кто-нибудь знает, что я делаю не так? Если есть больше контекста, чтобы объяснить, дайте мне знать:)