IOS本身没有系统的CheckBox组件,但是实际开发中会经常用到,所以专门写了一个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 getColorByTag:@"alertLabelcolor"];

  [self.view addSubview:checkBoxButton];

  [checkBoxButton release];

IOS开发自定义CheckBox控件的更多相关文章

  1. IOS开发--自定义segment控件,方便自定义样式

    系统的segment控件太封闭,想换个颜色加个背景太难了,忍不住自己写一个,以备不时之需 这个控件给出了很多自定义属性的设置,用起来还是比较方便的,需要注意的 itemWidth如果不设置,则会按照控 ...

  2. 继续聊WPF——自定义CheckBox控件外观

    上一篇文章中谈到了BulletDecorator控件,就是为自定义CheckBox控件的模板做准备,因为CheckBox需要比较严格的布局,正好,BulletDecorator控件就合适了,该控件的布 ...

  3. iOS 开发 ZFUI framework控件,使布局更简单

    来自:http://www.jianshu.com/p/bcf86b170d9c 前言 为什么会写这个?因为在iOS开发中,界面的布局一直没有Android布局有那么多的方法和优势,我个人开发都是纯代 ...

  4. IOS开发中设置控件内容对齐方式时容易混淆的几个属性

    IOS开发中四个容易混淆的属性: 1. textAligment : 文字的水平方向的对齐方式 1> 取值 NSTextAlignmentLeft      = 0,    // 左对齐 NST ...

  5. ios开发中button控件的属性及常见问题

    最为最基本的控件,我们必须对button的每个常用属性都熟练应用: 1,使用之前,必须对按钮进行定义,为乐规范,在@interface ViewController (){}中进行定义,先定义后使用. ...

  6. iOS开发基础-UITableView控件简单介绍

     UITableView 继承自 UIScrollView ,用于实现表格数据展示,支持垂直滚动.  UITableView 需要一个数据源来显示数据,并向数据源查询一共有多少行数据以及每一行显示什么 ...

  7. iOS开发无第三方控件的援助达到的效果侧边栏

    最近的研究iOS程序侧边栏.渐渐的发现iOS该方案还开始采取风侧边栏格该,QQ,今日头条,Path(Path运营商最早的侧边栏app该,效果说成是Path效果),所以就研究了下. 然后发现Git Hu ...

  8. iOS开发中UIDatePicker控件的使用方法简介

    iOS上的选择时间日期的控件是这样的,左边是时间和日期混合,右边是单纯的日期模式. 您可以选择自己需要的模式,Time, Date,Date and Time  , Count Down Timer四 ...

  9. IOS开发之按钮控件Button详解

    reference:http://mxcvns.lofter.com/post/1d23b1a3_685d59d 首先是继承问题,UIButton继承于UIControl,而UIControl继承于U ...

随机推荐

  1. 大数据系列之Hadoop框架

    Hadoop框架中,有很多优秀的工具,帮助我们解决工作中的问题. Hadoop的位置 从上图可以看出,越往右,实时性越高,越往上,涉及到算法等越多. 越往上,越往右就越火…… Hadoop框架中一些简 ...

  2. 「caffe编译bug」.build_release/lib/libcaffe.so: undefined reference to cv::imread

    转自:https://www.douban.com/note/568788483/ CXX/LD -o .build_release/tools/convert_imageset.bin.build_ ...

  3. Mybatis Common Mapper文件

    表名/条件/字段 都可以传入进去 <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE mappe ...

  4. sql函数应用例子

    select p.province, data.existUserCount, data.addUserCount, data.cancelUserCount, data.threedayCancel ...

  5. LightOJ 1370- Bi-shoe and Phi-shoe (欧拉函数)

    题目大意:一个竹竿长度为p,它的score值就是比p长度小且与且与p互质的数字总数,比如9有1,2,4,5,7,8这六个数那它的score就是6.给你T组数据,每组n个学生,每个学生都有一个幸运数字, ...

  6. webpack编译时No PostCSS Config的解决方法

    1. { loader:"postcss-loader", options: { // 如果没有options这个选项将会报错 No PostCSS Config found pl ...

  7. apache kafka系列之jmx监控指标参数

    https://blog.csdn.net/lizhitao/article/details/35986849

  8. Tornado入门资料整理

    预备知识 没学过计网的苦逼找点现成一些的东西看吧…… <Restful Web Services>,<HTTP The Definitive Guide>,各种RFC WSGI ...

  9. Codeforces Round #361 (Div. 2) D - Friends and Subsequences

    题目大意:给你两个长度为n的数组a, b,问你有多少个问你有多少个区间满足 a中最大值等于b中最小值. 思路:我本来的想法是用单调栈求出每个点的管辖区间,然后问题就变成了巨麻烦的线段覆盖问题,就爆炸写 ...

  10. 20169211《Linux内核原理与分析》第二周作业

    <linux内核分析>实验一实验报告 <linux内核设计与实现>第1.2.18章学习总结 一.<linux内核分析>实验一实验报告        在进行实验楼操作 ...