WEB开发网
开发学院手机开发iPhone 开发 IOS开发自定义CheckBox控件 阅读

IOS开发自定义CheckBox控件

 2012-11-08 14:16:38 来源:WEB开发网   
核心提示: IOS本身没有系统的CheckBox组件,但是实际开发中会经常用到,IOS开发自定义CheckBox控件,所以专门写了一个CheckBox控件,直接上代码效果图:UICheckBoxButton.h文件如下:#import <UIKit/UIKit.h> #import "Common.h&q

 IOS本身没有系统的CheckBox组件,但是实际开发中会经常用到,所以专门写了一个CheckBox控件,直接上代码

效果图:


UICheckBoxButton.h文件如下:
#import <UIKit/UIKit.h>
#import "Common.h"

@interface UICheckBoxButton : UIControl
{
UILabel *label;
UIImageView *icon;
BOOL checked;
id delegate;
}
@property (retain, nonatomic) id delegate;
@property (retain, nonatomic) UILabel *label;
@property (retain, nonatomic) UIImageView *icon;

-(BOOL)isChecked;
-(void)setChecked: (BOOL)flag;
@end

UICheckBoxButton.m文件如下:
#import "UICheckBoxButton.h"

@implementation UICheckBoxButton
@synthesize label,icon,delegate;

- (id)initWithFrame:(CGRect)frame {
if ( self = [super initWithFrame: frame])
{
icon =[[UIImageView alloc] initWithFrame: CGRectMake (0, 0, frame.size.height, frame.size.height)];
[self setChecked:NO];
[self addSubview: icon];
label =[[UILabel alloc] initWithFrame: CGRectMake(icon.frame.size.width + 7, 0,
frame.size.width - icon.frame.size.width - 10,
frame.size.height)];
label.backgroundColor =[UIColor clearColor];
label.textAlignment = UITextAlignmentLeft;
[self addSubview:label];
[self addTarget:self action:@selector(clicked) forControlEvents: UIControlEventTouchUpInside];
}
return self;
}

-(BOOL)isChecked {
return checked;
}
-(void)setChecked: (BOOL)flag {
if (flag != checked)
{
checked = flag;
}
if (checked)
{
[icon setImage: [UIImage imageNamed:@"checkBoxSelect.png"]];
}
else
{
[icon setImage: [UIImage imageNamed:@"checkBoxNoSelect.png"]];
}
}
-(void)clicked {
[self setChecked: !checked];
if (delegate != nil)
{
SEL sel = NSSelectorFromString (@"checkButtonClicked");
if ([delegate respondsToSelector: sel])
{
[delegate performSelector: sel];
}
}

}
-(void)dealloc {
delegate = nil;
[label release];
[icon release];
[super dealloc];
}
@end

使用方法:
UICheckBoxButton *checkBoxButton = [[ UICheckBoxButton alloc] initWithFrame: CGRectMake(30, 50, 220, 25)];
checkBoxButton.delegate = self.delegate;
checkBoxButton.label.text = [Common getTextByTag:@"noCostPrompt"];
checkBoxButton.label.textColor = [Common getColorByTag:@"alertLabelcolor"];
[self.view addSubview:checkBoxButton];
[checkBoxButton release];

Tags:IOS 开发 定义

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接