我的一个ViewControllers中有一个UIButton,它有三个不同的状态图像(正常,突出显示和选中)。当我按下此按钮时,它会突出显示,当我释放它时,会被选中。我想制作一个动画,使用fadeIn左右,在4秒内将按钮的高亮显示图像更改为所选按钮。
有什么建议吗?
答案 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
子类,并且可能需要使用自定义动画代码覆盖setSelected
和setHighlighted
。更安全的赌注是直接子类UIControl
并重新实现这些选择器,以便您没有任何UIButton
特定遗产。