使用 PNG 背景为 UIButton alpha 设置动画:为啥动画从 alpha = 0 过渡到 alpha = 1 时会变成亮白色?

Posted

技术标签:

【中文标题】使用 PNG 背景为 UIButton alpha 设置动画:为啥动画从 alpha = 0 过渡到 alpha = 1 时会变成亮白色?【英文标题】:Animating UIButton alpha with a PNG background: why does the animation get bright white as it transitions from alpha = 0 to alpha = 1?使用 PNG 背景为 UIButton alpha 设置动画:为什么动画从 alpha = 0 过渡到 alpha = 1 时会变成亮白色? 【发布时间】:2011-08-10 03:25:06 【问题描述】:

这让我很困惑;我有一个简单的UIButton,背景是以下PNG:

我正在使用 ios 4 块动画,我所做的只是将其 alpha 属性从 0.0 设置为 1.0。但是,在动画进行时,UIButton 会变成亮白色,然后在属性达到 1.0 时最终稳定为上图所示。

我很困惑 - 例如,如果我在 Paint.NET 中打开该图像并将图像的不透明度从 0 滑动到 255,我会看到一个很好的淡入效果 - 这正是我想要的.但是,当我在 iOS 中为不透明度更改设置动画时,按钮在动画的中间部分变为亮白色。

如果我将动画的持续时间更改为延长的时间,例如 5 秒,效果会更加突出。有什么想法吗?

编辑:我正在使用 Xcode 4.1,并运行 iOS 4.3.3(第一代 iPad)。

【问题讨论】:

【参考方案1】:

经过深思熟虑,问题在于我的UIButton 是一个圆形矩形按钮;需要将类型更改为自定义。即使我为按钮设置的背景图像在类型为圆形矩形时有效,但对按钮应用 alpha 动画仍然会导致在动画期间出现默认的白色圆形矩形样式。这就是我的眼睛在动画中解释为“亮白色”的东西——它与我的 PNG 背景无关,与我使用的按钮的底层类型有关。

问题解决了。故事的道德启示?如果您要在使用自己的背景图像时为按钮设置动画,请将您的 UIButton 类型更改为 Custom

【讨论】:

以上是关于使用 PNG 背景为 UIButton alpha 设置动画:为啥动画从 alpha = 0 过渡到 alpha = 1 时会变成亮白色?的主要内容,如果未能解决你的问题,请参考以下文章

如何使背景PNG图像Alpha通道在QMainWindow中显示为透明

photoshop怎样改变alpha值存为透明图片 直接存为“web和设备所格式”的png格式不行,浏览时候出现白色背景

如何同时为 UIButton 的 titleLabel 的框架和 alpha 设置动画?

为uibutton背景图像iphone sdk设置渐变颜色(颜色)

屏蔽背景图像

UIButton 背景 VS UIButton imageview.view