几行代码集成单选按钮功能
来源:互联网 发布:java的对称杨辉三角 编辑:程序博客网 时间:2024/06/13 12:22
NSArray *arr = @[@"全部",@"文章",@"片段",@"视频",@"照片"];//按钮title数组 self.radioButtonView.btnTitleArr = arr;//传一个数组进去 CGFloat radioButtonViewH = 34 * arr.count;//计算高度 self.radioButtonView.frame = CGRectMake(width-102, (height-radioButtonViewH)/2, 102, radioButtonViewH); //按钮的点击事件 [self.radioButtonView returnBtnClickBlock:^(NSString *btnTitle) { NSLog(@"%@",btnTitle); }];
//// radioButtonView.h// Yeos//// Created by 潘东 on 16/5/23.// Copyright © 2016年 Dream. All rights reserved.//#import <UIKit/UIKit.h>typedef void (^ReturnBtnClick) (NSString *btnTitle);//声明一个block@interface radioButtonView : UIView//按钮标题数组@property (strong, nonatomic) NSArray *btnTitleArr;//声明block属性@property (copy, nonatomic) ReturnBtnClick returnBtnClickBlock;//创建一个Block语句块的函数-(void)returnBtnClickBlock:(ReturnBtnClick)block;@end
//// radioButtonView.m// Yeos//// Created by 潘东 on 16/5/23.// Copyright © 2016年 Dream. All rights reserved.//#import "radioButtonView.h"@interface radioButtonView (){ CGFloat x; CGFloat y; CGFloat w; CGFloat h; CGFloat gap;}@property (strong, nonatomic) UIButton *btn;//用于记录选中按钮@end@implementation radioButtonView//拿到按钮个数循环创建按钮-(void)setBtnTitleArr:(NSMutableArray *)btnTitleArr{ for (int i = 0 ; i < btnTitleArr.count; i++) { UIButton *btn = [[UIButton alloc]init]; [btn setTitleColor:[UIColor grayColor] forState:UIControlStateNormal];//普通状态 [btn setBackgroundImage:[UIImage imageNamed:@"unchecked"] forState:UIControlStateNormal]; [btn setTitleColor:[UIColor whiteColor] forState:UIControlStateSelected];//选中状态 [btn setBackgroundImage:[UIImage imageNamed:@"checked"] forState:UIControlStateSelected]; //按钮文字 [btn setTitle:btnTitleArr[i] forState:UIControlStateNormal]; btn.titleLabel.font = [UIFont systemFontOfSize:12.0f];//按钮文字大小 btn.titleEdgeInsets = UIEdgeInsetsMake(0, 0, 4, 0);//文字偏移量 btn.showsTouchWhenHighlighted=YES;//特效 if (i == 0) {// 如果是第一个设置他选中状态 btn.selected = YES; self.btn = btn; } [btn addTarget:self action:@selector(btnClick:) forControlEvents:UIControlEventTouchUpInside]; btn.tag = i; btn.frame = CGRectMake(x, y, w, h); y += h + gap; [self addSubview:btn]; }}//处理按钮点击事件-(void)btnClick:(UIButton *)btn{ if (self.returnBtnClickBlock) {//把按钮标题return出去 self.returnBtnClickBlock(btn.titleLabel.text); } btn.selected = YES;//设置选中状态 if (btn.tag != self.btn.tag) {//如果不是选中了上一次选中的按钮就把选中状态改为no self.btn.selected = NO; } self.btn = btn;//记录上一次选中的按钮}-(void)returnBtnClickBlock:(ReturnBtnClick)block{ if (block) { self.returnBtnClickBlock = block; }}-(instancetype)initWithFrame:(CGRect)frame{ if (self = [super initWithFrame:frame]) { w = 0.0; y = 0.0; w = 100; h = 24; gap = 8; } return self;}@end
源代码下载地址:https://github.com/antihumanPerson/radioButton
1 0
- 几行代码集成单选按钮功能
- Android 几行代码实现 单选/多选 按钮组
- JaaWeb全选按钮(单选按钮) 功能 实现 笔记
- JRadioButton单选按钮代码1
- JRadioButton单选按钮代码2
- 实现点击单选按钮后面的文字说明自动选中相应单选按钮功能
- 几行代码看懂单例模式
- javascript实现复选框实现单选按钮功能
- Qt自定义Combox(类似单选按钮功能)
- 用Div做到单选按钮radio自定义样式功能
- Qt自定义Combox(类似单选按钮功能)
- Swing代码分析(实践场景-单选按钮)
- 25---AWT和Swing(07)单选按钮(视频代码)
- js设置单选按钮选中示例代码
- 单选按钮&复选按钮
- 几行代码快速集成二维码扫描库
- 几行代码快速集成二维码扫描库
- 几行代码快速集成二维码扫描库
- [C语言] printf函数用法详解
- ANR完全解析
- 原理-关联FP Growth算法
- csr8670--button按键的实现
- 学习笔记-Java中的xml文件读取之DOM4J解析
- 几行代码集成单选按钮功能
- POJ 1664 整数划分问题
- 快排算法
- github版本回退
- 2016SDAU课程练习四1023 Problem W
- 排序
- Mysql 的事务与日志
- Git:Git对象(HEAD,master,branch)
- 训练4 习题2