iphone 实现CHeckBox

iphone开发中,需要用到自动登录,或者记住密码,这些基本设置;而UILit不提供类似的CheckBox;那么就自己实现一个吧,
实现很简单,继承一个UIButton;添加一个BOLL属性ischecked;同时增加需要响应的目标和目标函数;
view sourceprint?#import   
@interface BECheckBox : UIButton {  
BOOL isChecked;  
id target;  
SEL fun;  
}  
@property (nonatomic,assign) BOOL isChecked;  
-(IBAction) checkBoxClicked;  
-(void)setTarget:(id)tar fun:(SEL )ff;  
@end 
    在实现的同时,主要是初始化,设置内容模式为UIControlContentHorizontalAlignmentLeft;
BECheckBox实现 
#import "BECheckBox.h"
@implementation BECheckBox
@synthesize isChecked;
- (id)initWithFrame:(CGRect)frame {
if (self = [super initWithFrame:frame]) {
// Initialization code
        self.contentHorizontalAlignment  = UIControlContentHorizontalAlignmentLeft;        
[self setImage:[UIImage imageNamed:@"com_btn_check.png"] forState:UIControlStateNormal];
[self addTarget:self action:@selector(checkBoxClicked) forControlEvents:UIControlEventTouchUpInside];
}
return self;
}
-(void)setTarget:(id)tar fun:(SEL)ff
{
target=tar;
fun=ff;
}
-(void)setIsChecked:(BOOL)check
{   
isChecked=check;
if (check) {
[self setImage:[UIImage imageNamed:@"com_btn_checked.png"] forState:UIControlStateNormal];
}
else {
[self setImage:[UIImage imageNamed:@"com_btn_check.png"] forState:UIControlStateNormal];
}
}
//响应点击事件
-(IBAction) checkBoxClicked
{
if(self.isChecked ==NO){
self.isChecked =YES;
[self setImage:[UIImage imageNamed:@"com_btn_checked.png"] forState:UIControlStateNormal];
}else{
self.isChecked =NO;
[self setImage:[UIImage imageNamed:@"com_btn_check.png"] forState:UIControlStateNormal];
}
if (target) {
if ([target respondsToSelector:fun) {
[target performSelector:fun];
}
}
}
- (void)dealloc {
target=nil;
[super dealloc];
}
@end
   在使用BECheckBox, 关键是要设置他的目标和响应消息;最终效果如下:


项目源代码:/Files/jordenwu/BECheckBox.zip 
分类: iphone开发技巧UI篇

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章