5

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

有什么建议吗?

4

2 回答 2

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];
于 2013-05-17T10:51:26.510 回答
2

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

于 2012-08-09T20:49:06.070 回答