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

情况

变暗

贴出重要代码

// 设置按钮图片动画数组
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,不让系统自动帮我们设置高亮状态下显示的图片即可。

效果

完美

附上相关项目:Swift 3.0 高仿微信

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏Theo Tsao

Ionic3学习笔记(四)修改返回按钮文字、颜色

参考官网 Ionic API—Config 文档 可在 ./src/app/app.module.ts 中修改返回按钮文字

653
来自专栏前端侠2.0

table锁定列的一个方法.及琢磨思路

这是从http://stackoverflow.com找到一个一链接,删除多余的css,加上色就是上图。

772
来自专栏Theo Tsao

Ionic3学习笔记(五)动画之使用 animate.css

animate.css 是一款强大的、跨浏览器的预设CSS3动画库,内置了很多典型的CSS3动画,兼容性好使用方便,可以应用于我们的基于Ionic3的Hybr...

901
来自专栏flutter开发者

Flutter动画【3】

在前面的文章中我们看了下Flutter中的补间动画和Flutter Widgets,今天我们来看下页面过渡动画,也可以叫做共享元素动画,页面A的元素过渡到页面B...

894
来自专栏小白鼠

Ionic3 高德Web定位

高德提供了Web平台定位的JS API,同样需要用到 APP_Key,并且需要注意是使用Web端的Key,如下图所示。必须是Web端的,其它平台的无效。 ht...

702
来自专栏WindCoder

Jquery控制input与selected

当以form表单提交,diabled时无法获取数值,readonly可以获取到数值。

521
来自专栏练小习的专栏

Dom 事件处理函数

别人整理的,我顺手就给捏来了哈哈。很详细的一些事件,浏览器支持情况,以及详细的说明。在这里向整理者致敬。 <!DOCTYPE html PUBLIC "-//W...

1738
来自专栏Ryan Miao

Hexo next博客添加折叠块功能添加折叠代码块

前言 有大段的东西想要放上去,但又不想占据大量的位置。折叠是最好的选择。下面在Hexo的主题上定制添加折叠功能。 本文基于Hexo Next的主题修改。其他主题...

3638
来自专栏Flutter&Dart

Flutter之WidgetsApp使用详解&与MaterialApp的纠缠

如果对MaterialApp不熟悉,可先看我上一篇文章: Flutter之MaterialApp使用详解

1243
来自专栏蓝天

IP和网段及子网掩码基础知识

IP地址由网络号和主机号两部分组成,网络号的最高位必须是“0”,IP地址和子网掩码求“与”算出网络地址,只有网络地址相同才可直接通信,否则需要借助路由。 主机...

891

扫码关注云+社区