我有两个按钮图像:一个用于正常状态,一个用于选定状态。 当我从选定状态更改回正常状态时,我希望在几秒钟内发生交叉淡化效果。
到目前为止我正在做的是使用两个 UIView 动画:第一个在选定状态下从 1.0 的 alpha 变为 .5 的 alpha。然后我切换到正常状态并执行第二个 UIView 动画,从 .5 的 alpha 到 1.0 的 alpha。
我对视觉效果并不满意(从所选图像突然过渡到正常图像)。我还读到不应再使用 UIView。那么这里正确的方法是什么?代码示例也会非常有用。
最佳答案
对我来说这很有效:
[UIView transitionWithView: button duration: 4.0 options: UIViewAnimationOptionTransitionCrossDissolve animations: ^{
[button setSelected: !button.isSelected];
} completion: nil];
但是,当我将相同的 UIImage
设置为 UIControlStateHighlighted
和 UIControlStateSelected
时,这仅有效三个以下电话(留下一个电话对我不起作用):
[button setImage: img forState: UIControlStateSelected | UIControlStateHighlighted];
[button setImage: img forState: UIControlStateSelected];
[button setImage: img forState: UIControlStateHighlighted];
关于ios - 如何在 xcode 中的选定和未选定状态之间交叉淡入淡出按钮?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5255848/