使用 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的主要内容,如果未能解决你的问题,请参考以下文章

如何使用自动布局来对齐这两个 UIButton?

Swift:在自动格式化 UITextField 后动画 UIButton

stackView swift中uibutton问题的自动布局/宽度

swift 设置UIbutton图片文字位置布局

使用自动布局在屏幕更改时调整自定义单元格中的 UIButton 字体

使用自动布局将 UIButton 添加到自定义单元格