<p> </p>
<div class="article_content">
<p style="border:0px;background-color:transparent;font-size:13px;line-height:1.5;">我们先实现单个按钮,为了复用,不管单选还是复选按钮都是使用同一个类来实现,为了区别单选还是复选,我们用一个自定义枚举类型CheckButtonStyle属性style来区别,当其值设置为CheckButtonStyleDefault或CheckButtonStyleBox时,为复选按钮:</p>
<p style="border:0px;background-color:transparent;font-size:13px;line-height:1.5;"><img alt="" class="alignnone size-full wp-image-16091" height="43" src="https://beijingoptbbs.oss-cn-beijing.aliyuncs.com/cs/5606289-230f11c774c8d847b09db8036f195557.png" style="border:4px solid #efefef;background-color:transparent;" title="CheckButton1" width="177"></p>
<p style="border:0px;background-color:transparent;font-size:13px;line-height:1.5;">当其值设为CheckButtonStyleRadio时,为单选按钮:</p>
<p style="border:0px;background-color:transparent;font-size:13px;line-height:1.5;"><img alt="" class="alignnone size-full wp-image-16092" height="40" src="https://beijingoptbbs.oss-cn-beijing.aliyuncs.com/cs/5606289-8f1e5e7633e1568590efeac48590afb0.png" style="border:4px solid #efefef;background-color:transparent;" title="CheckButton2" width="162"></p>
<p style="border:0px;background-color:transparent;font-size:13px;line-height:1.5;">当按钮在选中/反选状态间切换时,文字左边的图片自动转换。</p>
<p style="border:0px;background-color:transparent;font-size:13px;line-height:1.5;">整个控件是由一个ImageView、一个Label、一个BOOL变量及其他变量组成,.h文件如下:</p>
<div class="wp_syntax" style="border:0px solid #C0C0C0;background-color:#f9f9f9;color:#110000;width:575px;">
<table border="0" style="border:0px;background-color:transparent;border-collapse:collapse;"><tbody style="border:0px;background-color:transparent;"><tr style="border:0px;background-color:transparent;"><td class="line_numbers" style="border-width:0px 2px 1px 0px;border-right-style:solid;border-bottom-style:solid;border-right-color:#a0db39;border-bottom-color:#dddddd;background-color:transparent;vertical-align:middle;text-align:right;color:#afafaf;"> <pre class="blockcode">1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
</pre> </td><td class="code" style="border-width:0px 0px 1px;border-bottom-style:solid;border-bottom-color:#dddddd;background-color:transparent;vertical-align:middle;"> <pre class="blockcode"><code class="language-objc"><span style="border:0px;background-color:transparent;color:#a61390;">typedef</span> <span style="border:0px;background-color:transparent;color:#a61390;">enum</span> <span style="border:0px;background-color:transparent;color:#002200;">{<!-- --></span>
CheckButtonStyleDefault <span style="border:0px;background-color:transparent;color:#002200;">=</span> <span style="border:0px;background-color:transparent;color:#2400d9;">0</span> ,
CheckButtonStyleBox <span style="border:0px;background-color:transparent;color:#002200;">=</span> <span style="border:0px;background-color:transparent;color:#2400d9;">1</span> ,
CheckButtonStyleRadio <span style="border:0px;background-color:transparent;color:#002200;">=</span> <span style="border:0px;background-color:transparent;color:#2400d9;">2</span>
<span style="border:0px;background-color:transparent;color:#002200;">}</span> CheckButtonStyle;
<span style="border:0px;background-color:transparent;color:#6e371a;">#import <Foundation/Foundation.h></span>
<span style="border:0px;background-color:transparent;color:#a61390;">@interface</span> CheckButton <span style="border:0px;background-color:transparent;color:#002200;">:</span> UIControl <span style="border:0px;background-color:transparent;color:#002200;">{<!-- --></span>
<span style="border:0px;background-color:transparent;color:#11740a;font-style:italic;">//UIControl* control;</span>
UILabel <span style="border:0px;background-color:transparent;color:#002200;">*</span> label ;
UIImageView <span style="border:0px;background-color:transparent;color:#002200;">*</span> icon ;
<span style="border:0px;background-color:transparent;color:#a61390;">BOOL</span> checked ;
<span style="border:0px;background-color:transparent;color:#a61390;">id</span> value , delegate ;
CheckButtonStyle style ;
<span style="border:0px;background-color:transparent;color:#400080;">NSString</span> <span style="border:0px;background-color:transparent;color:#002200;">*</span> checkname ,<span style="border:0px;background-color:transparent;color:#002200;">*</span> uncheckname ; <span style="border:0px;background-color:transparent;color:#11740a;font-style:italic;">// 勾选/反选时的图片文件名</span>
<span style="border:0px;background-color:transparent;color:#002200;">}</span>
<span style="border:0px;background-color:transparent;color:#a61390;">@property</span> <span style="border:0px;background-color:transparent;color:#002200;">(</span> retain , nonatomic <span style="border:0px;background-color:transparent;color:#002200;">)</span> <span style="border:0px;background-color:transparent;color:#a61390;">id</span> value,delegate;
<span style="border:0px;background-color:transparent;color:#a61390;">@property</span> <span style="border:0px;background-color:transparent;color:#002200;">(</span> retain , nonatomic <span style="border:0px;background-color:transparent;color:#002200;">)</span>UILabel<span sty |
|