Анимировать вид при нажатии кнопки - PullRequest
0 голосов
/ 28 августа 2018

У меня 4 кнопки подряд. и эти кнопки имеют ширину 1: 4 и расположены рядом друг с другом в горизонтальном положении.

Кнопки расположены как в дизайне

|Btn1|Btn2|Btn3|Btn4|

Теперь у меня есть вид, который расположен чуть ниже Btn4 на контроллере запуска вида. Теперь я хочу, чтобы когда пользователь нажимал на Btn1, анимацию просмотра чуть ниже Btn1, а если пользователь нажимал на Btn3, он должен перемещаться туда.

Я знаю, что следующий код может что-то сделать

let animator = UIViewPropertyAnimator(duration: 1, curve: .easeOut, animations: {
        self.viewIndicators.transform = CGAffineTransform(translationX: xValue , y: 0)

    })
    animator.startAnimation(afterDelay: 0.400)

в приведенном выше коде я действительно не знаю, что будет значение. Я попытался передать значение нажатой кнопки frame.x. Но это не сработало для меня. Вид оживил, но в неправильном положении.

Может кто-нибудь, пожалуйста, помогите мне.

Примечание: Вид, который будет анимирован, имеет равную ширину с каждой кнопкой в ​​строке. Я просто хочу выглядеть и чувствовать себя в Android TabLayout

1 Ответ

0 голосов
/ 28 августа 2018

Вы можете попробовать

@IBAction func btnClicked(_ sender:UIButton) {
   UIView.animate(withDuration: 0.25, animations: {
       self.viewIndicators.frame = sender.frame.offsetBy(dx:0,dy:20)
   })
}
...