将选择动画添加到UIButton

时间:2012-08-09 19:57:07

标签: objective-c animation uibutton touch-up-inside

我的一个ViewControllers中有一个UIButton,它有三个不同的状态图像(正常,突出显示和选中)。当我按下此按钮时,它会突出显示,当我释放它时,会被选中。我想制作一个动画,使用fadeIn左右,在4秒内将按钮的高亮显示图像更改为所选按钮。

有什么建议吗?

2 个答案:

答案 0 :(得分:9)

首先将普通选定的图片设置为UIView transitionWithView,然后在操作处理程序中设置更改动画,尝试UIButton

[UIView transitionWithView:self.addListButton
                  duration:0.3
                   options:UIViewAnimationOptionTransitionCrossDissolve
                animations:^{
                    [self.addListButton setSelected:YES];
                } completion:nil];

我不想改变UIButton的状态所以我只是更改了动画块中的普通图像:

[self.addListButton setImage:[UIImage imageNamed:@"icon-addbutton.png"]
    forState:UIControlStateNormal];

答案 1 :(得分:2)

您必须注册自己的UIButton子类,并且可能需要使用自定义动画代码覆盖setSelectedsetHighlighted。更安全的赌注是直接子类UIControl并重新实现这些选择器,以便您没有任何UIButton特定遗产。