iOS - Swift UIButton中ImageView的animationImages动画执行完毕后,图标变暗

2017-01-14 19:52:51来源:CSDN作者:lincsdnnet人点击

第七城市

情况

变暗
贴出重要代码

// 设置按钮图片动画数组voiceButton.imageView?.animationImages = [    #imageLiteral(resourceName: "message_voice_sender_playing_1"),    #imageLiteral(resourceName: "message_voice_sender_playing_2"),    #imageLiteral(resourceName: "message_voice_sender_playing_3")]
// 开始动画voiceButton.imageView?.startAnimating()
// 停止动画voiceButton.imageView?.stopAnimating()

原因

这个按钮在结束动画之后之所以会变暗,是因为它在动画结束之后自动显示为高亮图片,不信?那只好上证据了~

// 设置语音按钮的高亮图片voiceButton.setImage(#imageLiteral(resourceName: "message_voice_sender_normal"), for: .highlighted)

那知道原因之后就很好解决了

解决方案

方案一:设置按钮的高亮图片

将按钮的高亮图片与普通状态下的一致即可。这里就再赘述了

方案二:adjustsImageWhenHighlighted = false

在UIButton中有这么一个属性

adjustsImageWhenHighlighted

查看官方文档的说明

当该属性设置为true时,按钮在高亮状态下,图片会绘制成高亮(前提是没有手动设置高亮图片)。并且该值的默认值为true
所以我们也可以将属性adjustsImageWhenHighlighted设置为false,不让系统自动帮我们设置高亮状态下显示的图片即可。

效果

完美

第七城市

最新文章

123

最新摄影

微信扫一扫

第七城市微信公众平台