【Demo】UIKit重写UIButton自定义复选框UICheckBox
来源:互联网 发布:电脑桌面日程软件 编辑:程序博客网 时间:2024/06/15 22:27
思路:
UIKit框架中没有checkbox复选框的组件,但是UIButton组件有UIControlStateNormal和UIControlStateSelected两个状态,并且有selected属性纪录按钮是否被选中,因此可以继承按钮组件实现一个复选框的组件。
自定义UICheckBox类
这里定义了使用frame初始化复选框的函数和几种初始化复选框按钮图片的方法,初始化函数可以根据需要自己设计添加,也就是按照‘万能初始化’设计方式来设计完善这个复选框组件。
UICheckBox.h//// UICheckBox.h// demo//// Created by Jiangxh on 15/9/23.// Copyright © 2015年 Jiangxh. All rights reserved.///************************************ * 重写UIButton成复选框组件 ************************************/#import <UIKit/UIKit.h>@interface UICheckBox : UIButton/** * 复选框选中状态 */@property (nonatomic)BOOL isChecked;/** * 用frame初始化checkbox按钮 */- (UICheckBox *)initWithFrame:(CGRect)frame;/** * 设置未选中图片 */- (void)setNormalImage:(UIImage*)normalImage;/** * 设置选中图片 */- (void)setSelectedImage:(UIImage*)selectedImage;/** * 设置选中和未选中图片 */- (void)setImage:(UIImage*)normalImage andSelectedImage:(UIImage*)selectedImage;/** * 用字符串设置未选中图片 */- (void)setNormalImageWithName:(NSString*)normalImageName;/** * 用字符串设置选中图片 */- (void)setSelectedImageWithName:(NSString*)selectedImageName;/** * 用字符串设置图片 */- (void)setImageWithName:(NSString*)normalImageName andSelectedName:(NSString*)selectedImageName;/** * 按钮点击事件,点击后取反按钮状态 */-(void)checkboxClick;@end
UICheckBox.m
//// UICheckBox.m// demo//// Created by Jiangxh on 15/9/23.// Copyright © 2015年 Jiangxh. All rights reserved.//#import "UICheckBox.h"@implementation UICheckBox/** * 初始化checkbox按钮 */- (UICheckBox *)initWithFrame:(CGRect)frame { if ([super initWithFrame:frame]) { // 开始的时候设置复选框是未选中的 self.selected = NO; _isChecked = NO; // 设置checkobx的监听事件 [self addTarget:self action:@selector(checkboxClick) forControlEvents:UIControlEventTouchUpInside]; return self; } return nil;}/** * 设置未选中图片 */- (void)setNormalImage:(UIImage*)normalImage { [self setImage:normalImage forState:UIControlStateNormal];}/** * 设置选中图片 */- (void)setSelectedImage:(UIImage*)selectedImage { [self setImage:selectedImage forState:UIControlStateSelected];}/** * 设置图片 */- (void)setImage:(UIImage*)normalImage andSelectedImage:(UIImage*)selectedImage { [self setNormalImage:normalImage]; [self setSelectedImage:selectedImage];}/** * 用字符串设置未选中图片 */- (void)setNormalImageWithName:(NSString*)normalImageName { [self setNormalImage:[UIImage imageNamed:normalImageName]];}/** * 用字符串设置选中图片 */- (void)setSelectedImageWithName:(NSString*)selectedImageName { [self setSelectedImage:[UIImage imageNamed:selectedImageName]];}/** * 用字符串设置图片 */- (void)setImageWithName:(NSString*)normalImageName andSelectedName:(NSString*)selectedImageName { [self setNormalImageWithName:normalImageName]; [self setSelectedImageWithName:selectedImageName];}/** *按钮点击事件,点击后取反按钮状态 */-(void)checkboxClick { // 取反复选框状态,通过取按钮的selected属性可以判断复选框当前有没有选中 self.selected = !self.selected; _isChecked = self.selected; //后台打印调试 if (self.selected) { NSLog(@"1"); }else{ NSLog(@"0"); }}@end
组件使用测试
#define boxSize 50 //复选框尺寸 // 定义复选框 UICheckBox *checkbox = [[UICheckBox alloc] initWithFrame:CGRectMake(ApplicationW/2 - boxSize/2, ApplicationH/3, boxSize, boxSize)]; // 设置复选框选中和未选中时的图片 [checkbox setImageWithName:@"checkbox_off" andSelectedName:@"checkbox_on"]; // 添加到当前视图 [self.view addSubview:checkbox];
1 0
- 【Demo】UIKit重写UIButton自定义复选框UICheckBox
- 自定义复选框,复选框样式修改,重写复选框
- 自定义复选框,复选框样式修改,重写复选框
- Cocos2d-x教程 CocoStudio篇 (3) UICheckBox 复选框控件
- NGUI v2.0 Interaction_10_11:UIButtonTween UI按钮补间类 UICheckbox UI复选框
- UIKit---UIButton详解
- UIKit之浅析UIButton
- IOS 自定义复选框
- Android 自定义复选框
- html自定义复选框
- 自定义复选框样式
- 自定义复选框样式
- 自定义复选框
- 自定义复选框样式
- Qml自定义复选框
- UIKit--UIButton的简单应用
- UIKit框架-04.UIButton
- IOS UIButton实现checkbox按钮二选一(单选框,复选框)
- HiDLL制作的Unity3D插件汇总(所有插件目录)
- 一步一步写二叉查找树
- python模块imghdr读图片后缀名
- maven pom文件结构简析
- Java序列化与反序列化的几种方式
- 【Demo】UIKit重写UIButton自定义复选框UICheckBox
- 输入框提示信息
- textView的代理方法汇总
- 一步一步写平衡二叉树(AVL树)
- gettimeofday
- 汉字机内码——hdu 2030
- Maven 无法从仓库获取dependency Jar包时处理
- 获取城市列表并且排序json
- SVN C-API and Documentation