首页 > 网站 > 建站经验 > 正文

I-OS开发自定义CheckBox控件

2019-11-02 14:43:01
字体:
来源:转载
供稿:网友

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

  效果图:

IOS开发自定义CheckBox控件 电脑高手

  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

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表