При пролистывании вверх я анимировал вид снизу экрана, используя приведенный ниже код
UIView.animate(withDuration: 0.5, delay: 0.0, options: [], animations)
вместе с
self.view.layoutIfNeeded()
Но так как мое представление содержит TextField, когда я начинаю печатать и нажимаю любую клавишу, представление возвращается к своей исходной позиции при запуске. Короче говоря, я предполагаю, что ограничения обновления анимированного представления не сохраняются.
Может кто-нибудь, пожалуйста, помогите мне исправить это, я попробовал много вариантов.
@objc func handleSwipe(_ sender : UISwipeGestureRecognizer){
UIView.animate(withDuration: 0.5, delay: 0.0, options: [], animations: {
if sender.direction == .up{
switch self.currentIndex {
case 0:
self.assetsView.frame = CGRect(x: self.assetsView.frame.origin.x, y: self.scrollUpY , width: self.assetsView.frame.size.width, height: self.assetsView.frame.size.height)
self.liabilitiesView.frame = CGRect(x: self.liabilitiesView.frame.origin.x, y: self.scrollDownY , width: self.liabilitiesView.frame.size.width, height: self.liabilitiesView.frame.size.height)
break
case 1:
self.assetsView.frame = CGRect(x: self.assetsView.frame.origin.x, y: self.originalTopY , width: self.assetsView.frame.size.width, height: self.assetsView.frame.size.height)
self.liabilitiesView.frame = CGRect(x: self.liabilitiesView.frame.origin.x, y: self.scrollUpY , width: self.liabilitiesView.frame.size.width, height: self.liabilitiesView.frame.size.height)
self.savingsView.frame = CGRect(x: self.savingsView.frame.origin.x, y: self.scrollDownY , width: self.savingsView.frame.size.width, height: self.savingsView.frame.size.height)
break
case 2:
self.liabilitiesView.frame = CGRect(x: self.liabilitiesView.frame.origin.x, y: self.originalTopY , width: self.liabilitiesView.frame.size.width, height: self.liabilitiesView.frame.size.height)
self.savingsView.frame = CGRect(x: self.savingsView.frame.origin.x, y: self.scrollUpY , width: self.savingsView.frame.size.width, height: self.savingsView.frame.size.height)
break;
case 3:
break;
default:
QL1("Success")
}
}else if sender.direction == .down{
switch self.currentIndex {
case 0:
self.assetsView.frame = CGRect(x: self.assetsView.frame.origin.x, y: self.scrollDownY , width: self.assetsView.frame.size.width, height: self.assetsView.frame.size.height)
self.liabilitiesView.frame = CGRect(x: self.liabilitiesView.frame.origin.x, y: self.originalDownY , width: self.liabilitiesView.frame.size.width, height: self.liabilitiesView.frame.size.height)
break
case 1:
self.assetsView.frame = CGRect(x: self.assetsView.frame.origin.x, y: self.scrollUpY , width: self.assetsView.frame.size.width, height: self.assetsView.frame.size.height)
self.liabilitiesView.frame = CGRect(x: self.liabilitiesView.frame.origin.x, y: self.scrollDownY , width: self.liabilitiesView.frame.size.width, height: self.liabilitiesView.frame.size.height)
self.savingsView.frame = CGRect(x: self.savingsView.frame.origin.x, y: self.originalDownY , width: self.savingsView.frame.size.width, height: self.savingsView.frame.size.height)
break
case 2:
self.assetsView.frame = CGRect(x: self.assetsView.frame.origin.x, y: self.originalTopY , width: self.assetsView.frame.size.width, height: self.assetsView.frame.size.height)
self.liabilitiesView.frame = CGRect(x: self.liabilitiesView.frame.origin.x, y: self.scrollUpY , width: self.liabilitiesView.frame.size.width, height: self.liabilitiesView.frame.size.height)
self.savingsView.frame = CGRect(x: self.savingsView.frame.origin.x, y: self.scrollDownY , width: self.savingsView.frame.size.width, height: self.savingsView.frame.size.height)
break;
case 3:
break;
default:
QL1("Success")
}
}
self.view.layoutIfNeeded()
}, completion: { (finished: Bool) in
self.updateScreen(sender)
})
}
Заранее спасибо.