使用 Swift 自动布局动画 UIButton
Posted
技术标签:
【中文标题】使用 Swift 自动布局动画 UIButton【英文标题】:Animate UIButton with Autolayout with Swift 【发布时间】:2016-01-05 17:51:52 【问题描述】:你好社区我只想为 UIView 设置一个 UIButton 的动画。但它真的不适合我。
self.introConstraints.constant = self.view.frame.width
self.view.needsUpdateConstraints()
UIView.animateWithDuration(0.6)
self.view.layoutIfNeeded()
这就是我的代码的样子。
【问题讨论】:
省略self.view.needsUpdateConstraints()
,它应该可以工作。你永远不能调用那个方法,如果你用 self.view.setNeedsUpdateConstraints()
替换它也应该没问题。
【参考方案1】:
=> 试试这个:-
UIView.animateWithDuration(0.6 , 动画: self.button.transform = CGAffineTransformMakeScale(0.6, 0.6)
,
completion:
UIView.animateWithDuration(0.6)
self.button.transform = CGAffineTransformIdentity
)
=> 如果你想用弹簧动画获得更多的弹跳效果。:-
=>尝试以下代码:
@IBOutlet 弱变量按钮:UIButton!
@IBAction func animateButton(sender: AnyObject)
button.transform = CGAffineTransformMakeScale(0.6, 0.6)
UIView.animateWithDuration(2.0,
delay: 0,
usingSpringWithDamping: CGFloat(0.20),
initialSpringVelocity: CGFloat(6.0),
options: UIViewAnimationOptions.AllowUserInteraction,
animations:
self.button.transform = CGAffineTransformIdentity
,
completion: Void in()
)
【讨论】:
【参考方案2】:这真的很疯狂,但请确保您设置了正确的约束条件,这将对您有所帮助。
它应该与这样的东西一起工作
self.startConstraints.constant = self.view.frame.width - self.startButton.frame.width
UIView.animateWithDuration(0.6)
self.view.layoutIfNeeded()
【讨论】:
【参考方案3】:删除 self.view.needsUpdateConstraints()
【讨论】:
以上是关于使用 Swift 自动布局动画 UIButton的主要内容,如果未能解决你的问题,请参考以下文章
Swift:在自动格式化 UITextField 后动画 UIButton
stackView swift中uibutton问题的自动布局/宽度