设置UIButton的标题时如何停止按钮动画[重复]

Posted

技术标签:

【中文标题】设置UIButton的标题时如何停止按钮动画[重复]【英文标题】:How to stop button from animating when setting the title of UIButton [duplicate] 【发布时间】:2017-01-06 15:12:12 【问题描述】:

当我们要设置一个UIButton的文本时,我们需要执行下面的代码:

myButton.setTitle("My Text", forState: .normal)

唯一的问题是,当文本发生变化时,会出现这样的动画:

有没有办法在没有动画的情况下设置按钮的标题?

我希望按钮充当标准的 UILabel,但我也希望它在按下时调用函数。

【问题讨论】:

【参考方案1】:

您可以在 UIView 的performWithoutAnimation 中设置值,它会按照它的说明进行操作。但是您还需要致电layoutIfNeeded,以便他们在阻塞期间进行重新布局。

UIView.performWithoutAnimation 
  self.myButton.setTitle(newTitle, forState: .Normal)
  self.myButton.layoutIfNeeded()

【讨论】:

那行得通。另外,如果我要单击我想要的那个按钮,它还会显示动画。【参考方案2】:

对所有 Uibuttoncontrolstate 使用 myButton.setTitle("My Text", forState: .normal)。

【讨论】:

这是我已经在使用的代码 您是否为所有 UIControlState 尝试过相同的标题?正常,突出显示,选中。当我们单击按钮时,它会显示选定的状态标题。当我们设置相同的标题时,它不会动画。

以上是关于设置UIButton的标题时如何停止按钮动画[重复]的主要内容,如果未能解决你的问题,请参考以下文章

如何在标题更改时停止不需要的 UIButton 动画?

按下按钮时停止动画

设置 UIButton 背景图像停止动画

在 Swift 中为 UIButton 设置动画

如何在执行segue之前执行按钮动画[重复]

如何最好地为 UITableViewCell 或 UIButton 设置动画以重复亮起红色