自定义Switch控件,可自定义文字以及背景的iOS控件

先上图

QQ20150413-1@2x QQ20150413-2@2x (图随意截的,不要在意)

系统本身的UISwitch其实很漂亮,但是呢,设计师设计的Switch,并不是那么简单的,需要显示文字,然后显示背景,而且大小可控制等等。。

这时候,特喵的系统的Switch就捉襟见肘了,作为一只程序猿,怎么能说功能实现不了呢a

自己动手,丰衣足食伟大的领袖毛老爷子说的名言

言归正传,首先,看UISwitch实现的思路,是基于UIControl实现的。控件是对UIView派生类的实用增强及补充,并可以直接附着于导航栏、表格单元,甚至更大的对象。UIControl派生自UIView类,所以每个控件都有很多视图的特性,包括附着于其他视图的能力。所有
控件都拥有一套共同的属性和方法。

那么,咱这个自定义的Switch也是继承UIControl,省很多事情,而且事件的封装都搞定了~

当事件都搞定的时候,这时候需要关心的只是UI了~那么,这个时候,有显示而无事件,这就想到了CALayer,这时候,我选择的时CALayer的subClass:CAShapeLayer(两个重要的subClass:CAGradientLayer和CAShapeLayer)。drawInContext 绘制文字、图片等内容显示~这里有个比较坑的地方,CGContextDrawImage()函数绘制图片的时候,会上下翻转,需要对图片进行处理一下再进行绘制。

OK,提到这里,上代码~

http://pan.baidu.com/s/1sjmdbTr(密码:gccm)