过年期间,少不了各种聚会,当下聚会大多数情况下自然是团购,然后就是用各种APP。。。使用度娘糯米时(不是广告,不是广告,不是广告!),偶然注意到了它的首页中一个有意思的效果,就是那些“按钮”点击时的缩放动画,有一种“按下去”的赶脚,恰逢前阵子做过一个录音按钮的“点动”效果,忍不住便封装了这个按钮效果:GitHub

iOS (UIButton封装)仿糯米首页缩放“按钮”效果
动态缩放按钮,“按下去”的效果
demo中的按钮背景图片截取自度娘糯米首页,仅供学习参考!

糯米首页应该是collectionView布局吧?也许,这里只是纯粹实现效果,封装了系统的按钮。

关于这个效果,首先不得不提一个概念——点动。

1.关于“点动”按钮

点动这一概念,我是从硬件那边搬过来的。
曾经做单片机时,按键是一个很重要的外设,硬件按键在编写代码实现功能时,一般有两种效果:带锁按钮,不带锁按钮。
所谓带锁按钮,就是点击按钮之后立刻松手,就能实现对应功能,例如我们曾经用过的按键手机的数字键都是这样的。
所谓不带锁按钮,也就是这里要说的“点动”,顾名思义,就是点击就动,松手即停。单片机那边一般在电机控制什么的场景经常用到,在我们软件这边,较普遍的一个应用场景就是“录音按钮”(微信语音神马的)。
录音按钮在点击时进行录音,一旦松手,录音就会停止。
为了便于说明,写了以下效果进行演示,button的showsTouchWhenHighlighted属性打开以指示按钮正在被点击中。

iOS (UIButton封装)仿糯米首页缩放“按钮”效果
点动按钮效果

2.实现“点动”按钮

实现按钮的“点动”其实很简单:

1   //按下时
2   [myButton addTarget:self 
3                action:@selector(pressedEvent:) 
4      forControlEvents:UIControlEventTouchDown];
5   //松手后
6   [myButton addTarget:self 
7                action:@selector(unpressedEvent:) 
8      forControlEvents:UIControlEventTouchUpInside | UIControlEventTouchUpOutside];
View Code

相关文章:

  • 2021-12-01
  • 2022-02-28
  • 2021-09-11
  • 2021-06-13
  • 2022-12-23
  • 2021-05-17
  • 2022-12-23
猜你喜欢
  • 2021-10-21
  • 2021-09-15
  • 2021-07-30
  • 2022-12-23
  • 2021-09-26
  • 2022-12-23
  • 2022-12-23
相关资源
相似解决方案