IOS加减选择器
来源:互联网 发布:淘宝上的服装利润多少 编辑:程序博客网 时间:2024/06/05 00:42
最近由于在做预约部分的功能,需要选择人数和时间,并且还需要在时间的时候做出选择到最大小时之后,显示成最大小时后,所以写了一个小的demo,在这里分享给大家,希望大家可以用到:
封装的View的.h文件
#import <UIKit/UIKit.h>@interface NumberSeletedView : UIView/** * 最低数字 */@property (nonatomic , assign) int lowI;/** * 最高数字 */@property (nonatomic , assign) int HighI;/** * 拼装文字 */@property (nonatomic , strong) NSString *title;/** * 显示数字的区域 */@property (nonatomic , weak) UILabel *timeLable;/** * 数字 */@property (nonatomic , assign) int i;/** * 决定是否有 i人以上 YES为有 NO为没有 */@property (nonatomic , assign) BOOL HighType;@end
封装View的.m文件
#import "NumberSeletedView.h"#import "UIView+Extension.h"@interface NumberSeletedView ()/** * 减小按钮 */@property (nonatomic , weak) UIButton *leftBtn;/** * 增加按钮 */@property (nonatomic , weak) UIButton *rightBtn;/** * N人以上区域 */@property (nonatomic , weak) UIView *topView;/** * N人以上文字 */@property (nonatomic , weak) UILabel *lable;@end@implementation NumberSeletedView-(instancetype)initWithFrame:(CGRect)frame { if (self = [super initWithFrame:frame]) { //设置背景 UIImageView *comeView = [[UIImageView alloc] initWithFrame:CGRectMake(0, 0, self.width, self.height)]; comeView.image = [UIImage imageNamed:@"bespeakBG"]; [self addSubview:comeView]; //设置显示内容 UILabel *timeLable = [[UILabel alloc] initWithFrame:comeView.frame]; self.timeLable = timeLable; timeLable.textAlignment = NSTextAlignmentCenter; timeLable.font = [UIFont systemFontOfSize:12]; [self addSubview:timeLable]; //设置减小按钮 UIButton *leftBtn = [[UIButton alloc] initWithFrame:CGRectMake(0, 0, 31, 30)]; self.leftBtn = leftBtn; leftBtn.userInteractionEnabled = NO; [leftBtn setImage:[UIImage imageNamed:@"bespeakReduceEnable"] forState:UIControlStateNormal]; [leftBtn setImage:[UIImage imageNamed:@"bespeakReduceHeight"] forState:UIControlStateHighlighted]; [leftBtn addTarget:self action:@selector(leftBtn:) forControlEvents:UIControlEventTouchUpInside]; [self addSubview:leftBtn]; //设置增大按钮 UIButton *rightBtn = [[UIButton alloc] initWithFrame:CGRectMake(self.width - 31, 0, 31, 30)]; self.rightBtn = rightBtn; [rightBtn setImage:[UIImage imageNamed:@"bespeakAdd"] forState:UIControlStateNormal]; [rightBtn setImage:[UIImage imageNamed:@"bespeakAddHeight"] forState:UIControlStateHighlighted]; [rightBtn addTarget:self action:@selector(rightBtn:) forControlEvents:UIControlEventTouchUpInside]; [self addSubview:rightBtn]; UIView *topView = [[UIView alloc] initWithFrame:CGRectMake(leftBtn.width, 0, self.width - leftBtn.width, self.height)]; self.topView = topView; UIImageView *imgView = [[UIImageView alloc] initWithFrame:CGRectMake(0, 0, self.topView.width, self.topView.height)]; imgView.image = [UIImage imageNamed:@"bespeakTopBG"]; [self.topView addSubview:imgView]; UILabel * lable = [[UILabel alloc] initWithFrame:imgView.frame]; self.lable = lable; lable.font = [UIFont systemFontOfSize:14]; lable.textAlignment = NSTextAlignmentCenter; [self.topView addSubview:lable]; [self addSubview:self.topView]; self.topView.hidden = YES; } return self;}- (void)layoutSubviews{ [super layoutSubviews]; self.i = self.lowI; self.timeLable.text = [NSString stringWithFormat:@"%d%@",self.i,self.title]; self.lable.text = [NSString stringWithFormat:@"%d人以上",(self.HighI - 1)];}#pragma mark 点击减- (void)leftBtn:(UIButton *)btn{ self.i --; if (self.HighType == YES) { if (self.i <= self.HighI) { self.topView.hidden = YES; } } if (self.i <= self.lowI) { btn.userInteractionEnabled = NO; [btn setImage:[UIImage imageNamed:@"bespeakReduceEnable"] forState:UIControlStateNormal]; } else { btn.userInteractionEnabled = YES; self.rightBtn.userInteractionEnabled = YES; [self.rightBtn setImage:[UIImage imageNamed:@"bespeakAdd"] forState:UIControlStateNormal]; } self.timeLable.text = [NSString stringWithFormat:@"%d%@",self.i,self.title];}#pragma mark 点击加- (void)rightBtn:(UIButton *)btn{ self.i ++; if (self.HighType == YES) { if (self.i >= self.HighI) { self.topView.hidden = NO; } } if (self.i >= self.HighI) { btn.userInteractionEnabled = NO; [btn setImage:[UIImage imageNamed:@"bespeakAddEnable"] forState:UIControlStateNormal]; } else { self.leftBtn.userInteractionEnabled = YES; [self.leftBtn setImage:[UIImage imageNamed:@"bespeakReduce"] forState:UIControlStateNormal]; } self.timeLable.text = [NSString stringWithFormat:@"%d%@",self.i,self.title];}
调用的方法
//到店时间 UIView *timeView = [self addViewWithY:CGRectGetMaxY(divisionView.frame) WithTitle:@"到店时间:" WithHeight:100]; //设置小时选择器 NumberSeletedView *numberView = [[NumberSeletedView alloc] initWithFrame:CGRectMake(timeView.width - 150, (timeView.height - 30 ) * 0.5, 140, 30)]; self.numberView = numberView; numberView.lowI = 1; numberView.HighI = 12; numberView.title = @"小时内"; numberView.HighType = NO; [timeView addSubview:numberView]; UILabel *PromptLable = [[UILabel alloc] init]; PromptLable.font = [UIFont systemFontOfSize:12]; PromptLable.text = @"注:只支持12小时内的预约哦!"; [PromptLable sizeToFit]; PromptLable.frame = CGRectMake(timeView.width - PromptLable.width - 10, timeView.height - PromptLable.height - 5, PromptLable.width, PromptLable.height); PromptLable.textColor = RGBA(242, 91, 66, 1); [timeView addSubview:PromptLable]; [footerView addSubview:timeView]; //预约人数 UIView *bespeakView = [self addViewWithY:CGRectGetMaxY(timeView.frame) WithTitle:@"预约人数:" WithHeight:80]; //设置预约人数选择器 NumberSeletedView *personView = [[NumberSeletedView alloc] initWithFrame:CGRectMake(bespeakView.width - 120, (bespeakView.height - 30 ) * 0.5, 110, 30)]; self.personView = personView; personView.lowI = 1; NSUInteger count = self.bespeakArray.count + 1; NSString *highCount = [NSString stringWithFormat:@"%lu",(unsigned long)count]; personView.HighI = [highCount intValue]; personView.title = @""; personView.HighType = YES; [bespeakView addSubview:personView]; [footerView addSubview:bespeakView];
代码就这么多,如果有什么不好的地方,请大家多多指教!谢谢!
1 0
- IOS加减选择器
- IOS年、月、日三种日期加减选择器
- iOS NSDate日期加减
- iOS NSDate日期加减
- iOS NSDate日期加减
- iOS日期加减计算
- iOS UIStepper 加减计数器
- iOS UIStepper加减按钮
- ios 时间戳 加减
- iOS单独对年月日加减
- [iOS]数量加减按钮效果
- 怎么设置可以使数字加减的数字选择器
- IOS 简单的 加减分 动画
- IOS选择器的使用
- iOS 时间选择器
- iOS添加日期选择器
- IOS 学习 日期选择器
- iOS开发-------选择器(UIPickView)
- android浅学之界面编程
- 关于openssl的坑
- c++程序调用被C编译器编译后的函数为什么要加extern "C"
- Core Animation - 变换<五>
- could not find a getter for ... in class ... 异常的原因解析
- IOS加减选择器
- layout下activity_main.xml无法显示界面出现This version of the rendering library is more recent than your versi
- linux中查看nginx、apache、php、mysql配置文件路径的方法
- linux守护进程及其创建
- iOS 屏幕旋转控制
- iOS 打包错误 command..exit code 127...
- 《软件架构设计》学习笔记--3--软件架构视图
- Volley图片加载并加入缓存处理
- WebViewJavascriptBridge 解析