#ios #swift4
#iOS #swift4
Вопрос:
Я пытаюсь анимировать представление, значит, нужно медленно увеличивать высоту представления до определенной высоты снизу.Я попробовал анимацию, но она анимируется снизу вверх.Я этого не хочу.Если кто-нибудь поможет мне сделать это, было бы здорово.Заранее спасибо.
extension UIView{
func animShow(){
UIView.animate(withDuration: 2, delay: 0, options: [.curveEaseIn],
animations: {
self.center.y -= self.bounds.height
self.layoutIfNeeded()
}, completion: nil)
self.isHidden = false
}
func animHide(){
UIView.animate(withDuration: 2, delay: 0, options: [.curveLinear],
animations: {
self.center.y = self.bounds.height
self.layoutIfNeeded()
}, completion: {(_ completed: Bool) -> Void in
self.isHidden = true
})
}
}
Комментарии:
1. Для нас было бы лучше, если бы вы дали какой-нибудь код, который вы пробовали!
2. Я дал код. При этом вид анимируется от центра. но мне нужно, чтобы снизу до любой высоты, заданной для просмотра
3. Перед анимацией self.bounds. высота = 0. В анимации измените высоту на значение.
4. Какова начальная
frame
частьview
того, что вы хотите анимировать?5. @axel, высота просмотра должна быть 300, она должна быть снизу
Ответ №1:
Ваши extension
функции работают нормально. В viewDidLoad
установите рамку анимированного представления, как в следующем примере frame:
viewToAnimate.frame = CGRect(x: 0, y: view.bounds.height, width: 100, height: 300)
и в вашем viewDidAppear
триггере анимация:
viewTotAnimate.animShow()
Это должно дать вам желаемую анимацию снизу вверх.