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篇

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