swift - анимировать SlideIn и SlideOut с левой стороны - PullRequest
0 голосов
/ 01 мая 2019

Как SlideIn и SlideOut меню с левой стороны в Swift? Следующий код показывает меню с левой стороны, но когда слайдин происходит быстро и фактически не показывает, что меню происходит с левой стороны. Кроме того, slideOut закрывает меню справа, а не слева.

Вот мой код:

UIView.animate(withDuration: 0.5, delay: 1, usingSpringWithDamping: 1, initialSpringVelocity: 1, options: .curveEaseIn, animations: {
            self.blackView.alpha = 1

            self.collectionView.frame = CGRect(x: 0, y: 0, width: 
            self.collectionView.frame.width - 10, height: 
            self.collectionView.frame.height)
        }, completion: nil)

, а также для slideOut

UIView.animate(withDuration: 0.5, delay: 1, usingSpringWithDamping: 1, initialSpringVelocity: 1, options: .curveEaseOut, animations: {
        self.blackView.alpha = 0
        if let window = UIApplication.shared.keyWindow {
            self.collectionView.frame = CGRect(x: window.frame.width, y: 0, width: self.collectionView.frame.width, height: self.collectionView.frame.height)
        }
    }) { (completed: Bool)

Любое предложение приветствуется.

1 Ответ

0 голосов
/ 01 мая 2019
//Slide in
self.collectionView.frame = CGRect(x: -(window.frame.width), y: 0, width: window.frame.width-50, height: window.frame.height)
UIView.animate(withDuration: 0.5, delay: 1, usingSpringWithDamping: 1, initialSpringVelocity: 1, options: .curveEaseIn, animations: {
    self.blackView.alpha = 1

    self.collectionView.frame = CGRect(x: 0, y: 0, width: window.frame.width-50, height: window.frame.height)
}, completion: nil)

//Slide out
UIView.animate(withDuration: 0.5, delay: 1, usingSpringWithDamping: 1, initialSpringVelocity: 1, options: .curveEaseOut, animations: {
    self.blackView.alpha = 0
    if let window = UIApplication.shared.keyWindow {
        self.collectionView.frame = CGRect(x: -(window.frame.width), y: 0, width: window.frame.width-50, height: window.frame.height)
    }
}, completion: nil)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...