iOS知识点-17. 要给一个UIButton增加一个点击后抖动的效果,该怎样实现?

Swift vs. Objective-C
  1. 要给一个UIButton增加一个点击后抖动的效果,该怎样实现?

解决方案有三种。个人推荐用protocol来解决。

  • 实现一个自定义的UIButton类,在其中添加点击抖动效果的方法(shake方法)

  • 写一个UIButton或者UIView的扩展(extension),然后在其中增加shake方法

  • 定义一个protocol,然后在协议扩展(protocol extension)中添加shake方法

分析这三种方法:

  • 在自定义的类中添加shake方法扩展性不好。如果shake方法被用在其他地方,又要在其他类中再添加一遍shake方法,这样代码复用性差。

  • 在extension中实现虽然解决了代码复用性问题,但是可读性比较差。团队开发中并不是所有人都知道这个extension中存在shake方法,同时随着功能的扩展,extension中新增的方法会层出不穷,它们很难归类管理。

  • 用协议定义解决了复用性、可读性、维护性三个难题。协议的命名(例如Shakeable)直接可以确定其实现的UIButton拥有响应shake功能;通过协议扩展,可以针对不同类实现特定的方法,可维护性也大大提高;因为协议扩展通用于所有实现对象,所以代码复用性也很高。

上一题 目录 下一题

你可能感兴趣的:(iOS知识点-17. 要给一个UIButton增加一个点击后抖动的效果,该怎样实现?)