单击按钮时的动画视图
Animate view when button is clicked
我一排有 4 个按钮。这些按钮的宽度为 1:4,并且在水平位置上彼此相邻。
按钮的排列与设计一致
|Btn1|Btn2|Btn3|Btn4|
现在我有一个视图,它位于视图控制器启动时 Btn4 的正下方。现在我希望当用户单击 Btn1 时,View 会在 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 值。但这对我不起作用。 View 确实有动画但位置错误。
谁能帮帮我。
注意: 动画视图的宽度与行中每个按钮的宽度相同。我只想提供 android TabLayout
中的外观和感觉
你可以试试
@IBAction func btnClicked(_ sender:UIButton) {
UIView.animate(withDuration: 0.25, animations: {
self.viewIndicators.frame = sender.frame.offsetBy(dx:0,dy:20)
})
}
我一排有 4 个按钮。这些按钮的宽度为 1:4,并且在水平位置上彼此相邻。
按钮的排列与设计一致
|Btn1|Btn2|Btn3|Btn4|
现在我有一个视图,它位于视图控制器启动时 Btn4 的正下方。现在我希望当用户单击 Btn1 时,View 会在 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 值。但这对我不起作用。 View 确实有动画但位置错误。
谁能帮帮我。
注意: 动画视图的宽度与行中每个按钮的宽度相同。我只想提供 android TabLayout
中的外观和感觉你可以试试
@IBAction func btnClicked(_ sender:UIButton) {
UIView.animate(withDuration: 0.25, animations: {
self.viewIndicators.frame = sender.frame.offsetBy(dx:0,dy:20)
})
}