当前位置:编程学习 > wap >>

IOS开发 - 自定义CheckBox控件

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

效果图:

 


UICheckBoxButton.h文件如下:
[html]
#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文件如下:
[html] 
#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 

使用方法:
[html]  www.zzzyk.com
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]; 

补充:移动开发 , IOS ,
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,