码迷,mamicode.com
首页 > 移动开发 > 详细

IOS开发自定义CheckBox控件

时间:2014-08-10 03:52:59      阅读:175      评论:0      收藏:0      [点我收藏+]

标签:http   color   使用   os   io   文件   for   ar   

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

  效果图:

bubuko.com,布布扣
bubuko.com,布布扣

  UICheckBoxButton.h文件如下:

  #import

  #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];

 

IOS开发自定义CheckBox控件,布布扣,bubuko.com

IOS开发自定义CheckBox控件

标签:http   color   使用   os   io   文件   for   ar   

原文地址:http://www.cnblogs.com/langtianya/p/3902303.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!