触摸时翻转 UIButton

Posted

技术标签:

【中文标题】触摸时翻转 UIButton【英文标题】:Flipping a UIButton On Touch 【发布时间】:2014-02-11 00:03:48 【问题描述】:

我正在用 xcode 编写一个应用程序,并且我有一个按钮,按下时会改变颜色。我想让按钮在按下时翻转并更改其颜色,例如从红色变为绿色。我该怎么做呢?

【问题讨论】:

google "UIView 块动画" 和 "CGAffineTransform 参考"。 【参考方案1】:

适用于 ios 12 及更低版本的@Matt 解决方案

UIView.beginAnimations(nil, context: nil)
UIView.setAnimationTransition(UIViewAnimationTransition.FlipFromLeft, forView: self.myButton, cache: true)
self.myButton.backgroundColor = myBOOL ? UIColor.greenColor() : UIColor.redColor()
self.myButton.setTitleColor(myBOOL ? UIColor.redColor() : UIColor.greenColor(), forState: UIControlState.Normal)
myBOOL = !myBOOL
UIView.commitAnimations()

FlipButton_Swift

【讨论】:

虽然理论上这可以回答这个问题,it would be preferable 在这里包含答案的基本部分,并提供链接以供参考。【参考方案2】:

最简单的方法是使用过渡动画。

[UIView beginAnimations:nil context:nil];
// self.b is a UIButton; _red is a BOOL ivar
[UIView setAnimationTransition:UIViewAnimationTransitionFlipFromLeft
                       forView:self.b cache:YES];
[self.b setBackgroundColor:(_red ? [UIColor greenColor] : [UIColor redColor])];
_red = !_red;
[UIView commitAnimations];

您必须修复该代码以更改您真正想要更改的按钮的任何内容;它可能不是背景颜色。

【讨论】:

以上是关于触摸时翻转 UIButton的主要内容,如果未能解决你的问题,请参考以下文章

UIView翻转动画

我们如何像在 iphone 应用程序中翻页一样翻转视图?

jQuery Mobile 事件

jQuery Mobile 事件

如何在 Android 3.0 及更高版本中更改 ActionBar 的触摸效果颜色

如何在 Android 3.0 及更高版本中更改 ActionBar 的触摸效果颜色