我目前的方法是将按钮添加为子视图:
let button = UIButton(frame: CGRect(x: 0, y: 0, width: 0, height: 60))
button.setTitle("Add", for: .normal)
buttonView = UIView(frame: CGRect(x: 0, y: 0, width: 0, height: 60))
buttonView.backgroundColor = .black
button.addSubview(buttonView)
然后设置视图宽度的动画:
UIView.animate(withDuration: 0.3, delay: 0.0, options: .curveEaseIn, animations: {
self.buttonView.frame = CGRect(x: 0, y: 0, width: self.view.frame.size.width, height: 60)
}, completion: nil)
我不喜欢这个是按钮标题保持静态。我希望它成为动画的一部分。
我也尝试设置按钮框架的动画,但它似乎不起作用。没有任何事情发生
我的按钮已添加到UITextField
inputAccessoryView
,因此我不确定这是否是问题所在。
有任何建议我如何正确设置按钮的动画效果?
答案 0 :(得分:1)
您不需要为UIButton添加额外的子视图,以便为其框架设置动画。
尝试在动画和动画关闭内添加layoutIfNeeded():
let button = UIButton(frame: CGRect(x: 0, y: 0, width: 60, height: 60))
button.setTitle("Add", for: .normal)
button.setTitleColor(UIColor.green, for: .normal)
button.backgroundColor = UIColor.black
view.addSubview(button)
button.layoutIfNeeded()
UIView.animate(withDuration: 3, delay: 0.0, options: .curveEaseIn, animations: {
button.frame = CGRect(x: 0, y: 0, width: self.view.frame.size.width, height: 60)
button.layoutIfNeeded()
}, completion: nil)
希望这有帮助。