У меня есть 2 UIView
, у каждого из которых есть UITextField
в поле зрения. Я анимирую первый UIView
слева направо, а второй вид следит за ним. Таким образом, похоже, что первое представление было отправлено, а второе представление пришло для дальнейшей работы. Это работает отлично, но когда я нажимаю на текстовое поле второго UIView
, первый UIView
возвращается на экран. Код, как показано ниже
UIView.animate(withDuration: 0.5, delay: 0, options: .curveEaseInOut, animations: {
var resendViewNewFrame = self.resendView.frame
resendViewNewFrame.origin.x -= resendViewNewFrame.size.width
var confirmViewNewFrame = self.confirmView.frame
confirmViewNewFrame.origin.x = 0
self.resendView.frame = resendViewNewFrame
self.confirmView.frame = confirmViewNewFrame
self.mobileNumberTextField.resignFirstResponder()
}, completion: nil)
Как сделать, чтобы первый экран больше не вышел на экран. Обычно позиция X первого вида после анимации становится шириной экрана.
не могли бы вы приложить любое изображение или гифку. Так что можно получше \
да. У меня есть ограничения.
@uzairdhada, если у вас есть ограничения, вы должны их анимировать. Не рама.
Как упоминалось в @RakeshaShastri, вам необходимо обновить постоянное значение ограничения, чтобы изменить положение, и необходимо вызвать метод layoutIfNeeded()
Это потому, что вы используете ограничения при первой настройке представления. Затем вы изменяете / анимируете кадры представлений. Это сработает, если вы больше не планируете компоновку вида. Но, вероятно, то, что он делает, это каким-то образом макеты вид сам по себе. Таким образом, он впервые приносит виды на ограниченные места.
Что вы можете сделать, так это изменить ограничения до, вызываемые функциями UIView.animate
. И сделать self.layoutIfNeeded
внутри закрытия UIView.animate animations
.
Нет, вам нужно изменить ограничение перед закрытием анимации и расположить представления в закрытии.
Да, @Desdenova права, изменение перед закрытием - лучший способ изменить ограничение. Десденова, не хотите ли отредактировать мой ответ? Или я сделаю это.
Лучше, если вы это сделаете.
Есть ли у вас какие-то ограничения автолайота?