IOS本身没有系统的CheckBox组件,但是实际开发中会经常用到,所以专门写了一个CheckBox控件,直接上代码BWwHTML5中文学习网 - HTML5先行者学习网
效果图:BWwHTML5中文学习网 - HTML5先行者学习网


UICheckBoxButton.h文件如下:BWwHTML5中文学习网 - HTML5先行者学习网
#import BWwHTML5中文学习网 - HTML5先行者学习网
#import "Common.h"BWwHTML5中文学习网 - HTML5先行者学习网
@interface UICheckBoxButton : UIControlBWwHTML5中文学习网 - HTML5先行者学习网
{BWwHTML5中文学习网 - HTML5先行者学习网
UILabel *label;BWwHTML5中文学习网 - HTML5先行者学习网
UIImageView *icon;BWwHTML5中文学习网 - HTML5先行者学习网
BOOL checked;BWwHTML5中文学习网 - HTML5先行者学习网
id delegate;BWwHTML5中文学习网 - HTML5先行者学习网
}BWwHTML5中文学习网 - HTML5先行者学习网
@property (retain, nonatomic) id delegate;BWwHTML5中文学习网 - HTML5先行者学习网
@property (retain, nonatomic) UILabel *label;BWwHTML5中文学习网 - HTML5先行者学习网
@property (retain, nonatomic) UIImageView *icon;BWwHTML5中文学习网 - HTML5先行者学习网
-(BOOL)isChecked;BWwHTML5中文学习网 - HTML5先行者学习网
-(void)setChecked: (BOOL)flag;BWwHTML5中文学习网 - HTML5先行者学习网
@endBWwHTML5中文学习网 - HTML5先行者学习网
UICheckBoxButton.m文件如下:BWwHTML5中文学习网 - HTML5先行者学习网
#import "UICheckBoxButton.h"BWwHTML5中文学习网 - HTML5先行者学习网
@implementation UICheckBoxButtonBWwHTML5中文学习网 - HTML5先行者学习网
@synthesize label,icon,delegate;BWwHTML5中文学习网 - HTML5先行者学习网
- (id)initWithFrame:(CGRect)frame {BWwHTML5中文学习网 - HTML5先行者学习网
if ( self = [super initWithFrame: frame])BWwHTML5中文学习网 - HTML5先行者学习网
{BWwHTML5中文学习网 - HTML5先行者学习网
icon =[[UIImageView alloc] initWithFrame: CGRectMake (0, 0, frame.size.height, frame.size.height)];BWwHTML5中文学习网 - HTML5先行者学习网
[self setChecked:NO];BWwHTML5中文学习网 - HTML5先行者学习网
[self addSubview: icon];BWwHTML5中文学习网 - HTML5先行者学习网
label =[[UILabel alloc] initWithFrame: CGRectMake(icon.frame.size.width + 7, 0,BWwHTML5中文学习网 - HTML5先行者学习网
frame.size.width - icon.frame.size.width - 10,BWwHTML5中文学习网 - HTML5先行者学习网
frame.size.height)];BWwHTML5中文学习网 - HTML5先行者学习网
label.backgroundColor =[UIColor clearColor];BWwHTML5中文学习网 - HTML5先行者学习网
label.textAlignment = UITextAlignmentLeft;BWwHTML5中文学习网 - HTML5先行者学习网
[self addSubview:label];BWwHTML5中文学习网 - HTML5先行者学习网
[self addTarget:self action:@selector(clicked) forControlEvents: UIControlEventTouchUpInside];BWwHTML5中文学习网 - HTML5先行者学习网
}BWwHTML5中文学习网 - HTML5先行者学习网
return self;BWwHTML5中文学习网 - HTML5先行者学习网
}BWwHTML5中文学习网 - HTML5先行者学习网
-(BOOL)isChecked {BWwHTML5中文学习网 - HTML5先行者学习网
return checked;BWwHTML5中文学习网 - HTML5先行者学习网
}BWwHTML5中文学习网 - HTML5先行者学习网
-(void)setChecked: (BOOL)flag {BWwHTML5中文学习网 - HTML5先行者学习网
if (flag != checked)BWwHTML5中文学习网 - HTML5先行者学习网
{BWwHTML5中文学习网 - HTML5先行者学习网
checked = flag;BWwHTML5中文学习网 - HTML5先行者学习网
}BWwHTML5中文学习网 - HTML5先行者学习网
if (checked)BWwHTML5中文学习网 - HTML5先行者学习网
{BWwHTML5中文学习网 - HTML5先行者学习网
[icon setImage: [UIImage imageNamed:@"checkBoxSelect.png"]];BWwHTML5中文学习网 - HTML5先行者学习网
}BWwHTML5中文学习网 - HTML5先行者学习网
elseBWwHTML5中文学习网 - HTML5先行者学习网
{BWwHTML5中文学习网 - HTML5先行者学习网
[icon setImage: [UIImage imageNamed:@"checkBoxNoSelect.png"]];BWwHTML5中文学习网 - HTML5先行者学习网
}BWwHTML5中文学习网 - HTML5先行者学习网
}BWwHTML5中文学习网 - HTML5先行者学习网
-(void)clicked {BWwHTML5中文学习网 - HTML5先行者学习网
[self setChecked: !checked];BWwHTML5中文学习网 - HTML5先行者学习网
if (delegate != nil)BWwHTML5中文学习网 - HTML5先行者学习网
{BWwHTML5中文学习网 - HTML5先行者学习网
SEL sel = NSSelectorFromString (@"checkButtonClicked");BWwHTML5中文学习网 - HTML5先行者学习网
if ([delegate respondsToSelector: sel])BWwHTML5中文学习网 - HTML5先行者学习网
{BWwHTML5中文学习网 - HTML5先行者学习网
[delegate performSelector: sel];BWwHTML5中文学习网 - HTML5先行者学习网
}BWwHTML5中文学习网 - HTML5先行者学习网
}BWwHTML5中文学习网 - HTML5先行者学习网
}BWwHTML5中文学习网 - HTML5先行者学习网
-(void)dealloc {BWwHTML5中文学习网 - HTML5先行者学习网
delegate = nil;BWwHTML5中文学习网 - HTML5先行者学习网
[label release];BWwHTML5中文学习网 - HTML5先行者学习网
[icon release];BWwHTML5中文学习网 - HTML5先行者学习网
[super dealloc];BWwHTML5中文学习网 - HTML5先行者学习网
}BWwHTML5中文学习网 - HTML5先行者学习网
@endBWwHTML5中文学习网 - HTML5先行者学习网
使用方法:BWwHTML5中文学习网 - HTML5先行者学习网
UICheckBoxButton *checkBoxButton = [[ UICheckBoxButton alloc] initWithFrame: CGRectMake(30, 50, 220, 25)];BWwHTML5中文学习网 - HTML5先行者学习网
checkBoxButton.delegate = self.delegate;BWwHTML5中文学习网 - HTML5先行者学习网
checkBoxButton.label.text = [Common getTextByTag:@"noCostPrompt"];BWwHTML5中文学习网 - HTML5先行者学习网
checkBoxButton.label.textColor = [Common getColorByTag:@"alertLabelcolor"];BWwHTML5中文学习网 - HTML5先行者学习网
[self.view addSubview:checkBoxButton];BWwHTML5中文学习网 - HTML5先行者学习网
[checkBoxButton release];BWwHTML5中文学习网 - HTML5先行者学习网