如何从按钮外部调用 UIButton 图像上的 UIView 转换?
Posted
技术标签:
【中文标题】如何从按钮外部调用 UIButton 图像上的 UIView 转换?【英文标题】:How to call UIView transition on a UIButton image from outside the button? 【发布时间】:2019-01-24 19:17:56 【问题描述】:我希望从按钮的内部和外部都调用此UIView
转换。每当我在with:
之后尝试除sender
以外的任何东西时,我都会收到Cannot convert vale to....
错误。有没有办法做到这一点?谢谢!
@IBOutlet weak var someButton: UIButton!
@IBAction func someButton(_ sender: UIButton)
UIView.transition(with: sender, duration: 0.3, options: .transitionCrossDissolve, animations:
sender.setImage(UIImage(named: "My Image.png"), for: UIControl.State.highlighted)
, completion: nil)
//...other functions
【问题讨论】:
不清楚你在问什么。您能否添加您收到的完整错误消息并在代码中显示错误发生的位置? 感谢@ScottThompson 的提问!当我研究更具体的案例来证明错误时,我找到了答案。 【参考方案1】:把它做成这样的函数
func animation(sender: UIButton)
UIView.transition(with: sender, duration: 0.3, options: .transitionCrossDissolve, animations:
sender.setImage(UIImage(named: "image.png"), for: .highlighted)
, completion: nil)
点击按钮或任何其他位置调用它:
animation(sender: sender)
【讨论】:
【参考方案2】:您可以通过创建如下所示的单独函数来使用 firebase 调用或其他一些事件操作来转换 UIButton
。使用UIButton
的outlet
访问该按钮。
@IBOutlet weak var someButton: UIButton!
func buttonTransition()
UIView.transition(with: sender, duration: 0.3, options: .transitionCrossDissolve, animations:
someButton.setImage(UIImage(named: "My Image.png"), for: UIControl.State.highlighted)
, completion: nil)
所以,您可以从任何地方调用buttonTransition()
函数。
【讨论】:
【参考方案3】:我想通了;将with:
分配给 UIButton 时,我没有使用 ViewController 名称:
UIView.transition(with: ViewController().buttonName,....
【讨论】:
以上是关于如何从按钮外部调用 UIButton 图像上的 UIView 转换?的主要内容,如果未能解决你的问题,请参考以下文章