UIPickerView 多级联动
UIPickerView的多级联动问题有些地方需要注意,其实多级联动并不难。。。楼主因为项目需要又没法使用网上的第三方,所以最近写了一个省市区多级联动,还是手写代码好!!
为了演示效果,我会多定义几个属性,表现演示效果
@interface newTeamSettingController()<UIPickerViewDataSource,UIPickerViewDelegate>
@property(strong,nonatomic)NSString* strWeek;//记录周数
@property(strong,nonatomic)NSString* strTime;//记录时辰
@property(strong,nonatomic)NSArray* timeArray;//数组保存
@property(strong,nonatomic)UITextField* timeField;
@end
初始化,使textField一开始显示数据
- (void)viewDidLoad {
//初始化timeArray
NSArray* weekArray=@[@"周一",@"周二",@"周三",@"周四",@"周五",@"周六",@"周日"];
NSArray* shijianArray=@[@"上午",@"下午",@"晚上"];
self.timeArray=[NSArray arrayWithObjects:weekArray,shijianArray, nil];
//请选择的时间textField
self.timeField=[[UITextField alloc]initWithFrame:CGRectMake(*luScaleW, *luScaleH, *luScaleW, *luScaleH)];
self.timeField.tag=;
self.timeField.placeholder=@"请选择";
self.timeField.textAlignment=NSTextAlignmentRight;
self.timeField.adjustsFontSizeToFitWidth=YES;
self.strWeek=[NSString stringWithFormat:@"%@",self.timeArray[][]];
self.strTime=[NSString stringWithFormat:@"%@",self.timeArray[][]];
[self.chuZhenView addSubview:self.timeField];
//timePickerView
self.timePickerView=[[UIPickerView alloc]initWithFrame:CGRectMake(, CGRectGetMaxY(self.timeField.frame), LuW, )];
self.timePickerView.tag=;
self.timePickerView.dataSource=self;
self.timePickerView.delegate=self;
self.timeField.delegate=self;
self.timeField.inputView=self.timePickerView;
//在这里设置下方数据刷新部分的初始显示
for (int component = ; component<self.timeArray.count; component++) {
[self pickerView:nil didSelectRow: inComponent:component];
}
[self pickerView:nil didSelectRow: inComponent:];
self.doneBtn=[[UIToolbar alloc]initWithFrame:CGRectMake(, , LuW, )];
UIBarButtonItem * button1 =[[UIBarButtonItem alloc]initWithBarButtonSystemItem: UIBarButtonSystemItemFlexibleSpace target:self action:nil];
UIBarButtonItem* rightBtn=[[UIBarButtonItem alloc]initWithBarButtonSystemItem:UIBarButtonSystemItemDone target:self action:@selector(doneClick)];
self.doneBtn.items=[NSArray arrayWithObjects:button1,rightBtn, nil];
self.timeField.inputAccessoryView=self.doneBtn;
}
UIPickerView的代理方法
-(NSInteger)numberOfComponentsInPickerView:(UIPickerView *)pickerView
{
return self.timeArray.count;
}
//每列对应多少行
-(NSInteger)pickerView:(UIPickerView *)pickerView numberOfRowsInComponent:(NSInteger)component
{
NSArray* arryM=self.timeArray[component];
return arryM.count;
}
//每行对应显示的数据是什么
-(NSString *)pickerView:(UIPickerView *)pickerView titleForRow:(NSInteger)row forComponent:(NSInteger)component
{
NSArray* arrayM=self.timeArray[component];
NSString* name=arrayM[row];
return name;
}
-(void)pickerView:(UIPickerView *)pickerView didSelectRow:(NSInteger)row inComponent:(NSInteger)component
{
if (component==) {
[pickerView reloadComponent:];
[pickerView selectRow: inComponent: animated:YES];
_strWeek=self.timeArray[component][row];
_strTime=self.timeArray[][];
}
else
{
_strTime=self.timeArray[component][row];
}
self.timeField.text=[NSString stringWithFormat:@"%@ %@",_strWeek,_strTime];
}
完成。
UIPickerView 多级联动的更多相关文章
- 微信小程序-多级联动
微信小程序中的多级联动 这里用到的案例是城市选择器 先上代码: .wxml <view class="{{boxHide}}"> <view>{{nian} ...
- PHP多级联动的学习(一)
我尝试在ThinkCMF中实现多级联动,首先我开始看了dede的联动类别管理前后台的代码以及他的数据库,经过非常多次的尝试,我渐渐有了一点想法,并给予实施. 首先写出前台的界面.如图. 然后在数据库中 ...
- vue在多级联动时,一些情况不用watch而用onchange会更好
onchange事件在内容改变且失去焦点时触发,因此在一些多级联动需要清空次级内容的时候,用onchange就非常有用了,尤其是浏览器会提前加载数据的情况下.有篇文章可以看一下,链接. PS:路漫漫其 ...
- [ PHP+jQuery ] ajax 多级联动菜单的应用:电商网站的用户地址选择功能 ( 二 ) - 仿亚马逊下拉面板
/** jQuery version: 1.8.3 Author: 小dee Date: 2014.11.8 */ 接上一篇博客. 实现带缓存的仿亚马逊下拉面板 效果图: 图1 初始 图2 点击省份 ...
- DropDownList的多级联动
DropDownList的多级联动的问题最典型的案例就是实现省市级三级联动的案例,对这个问题的描述是当选中山东省之后,在选择市的下拉菜单时,市一栏只出现山东省下面的市.对于县也是同样的道理. 我也做的 ...
- jQuery cxSelect 多级联动下拉菜单
随着电商热门,这种多层次的互动更充分地体现在下拉菜单,最明显的是多级联动地址下拉选择,因此,这里是一个简单的分享 jQuery cxSelect 多级联动下拉菜单 cxSelect 它是基于 jQue ...
- jQuery插件——多级联动菜单
jQuery插件——多级联动菜单 引言 开发中,有好多地方用到联动菜单,以前每次遇到联动菜单的时候都去重新写,代码重用率很低,前几天又遇到联动菜单的问题,总结了下,发现可以开发一个联动菜单的功能,以后 ...
- JavaScript 多级联动浮动(下拉)菜单 (第二版)
JavaScript 多级联动浮动(下拉)菜单 (第二版) 上一个版本(第一版请看这里)基本实现了多级联动和浮动菜单的功能,但效果不是太好,使用麻烦还有些bug,实用性不高.这次除了修改已发现的问 ...
- MVC实现多级联动
前言 多级联动(省级联动)的效果,网上现成的都有很多,各种JS实现,Jquery实现等等,今天我们要讲的是在MVC里面,如何更方便.更轻量的实现省级联动呢? 实现效果如下: 具体实现 如图所示,在HT ...
随机推荐
- hibernate dynamic-update="true"属性不起作用原因(转载)
原文地址: https://yan-sa.iteye.com/blog/1913684 由于我在action层使用了注解多例@Scope("prototype"),而在dao层默认 ...
- SpringBoot常用注解总结
在SpringBoot框架中,注解做为一种隐式配置,极大的简化了之前xml文件的配置方式.SpringBoot中包含许多种类的注解,这里对在SpingBoot项目中经常使用到的一些注解的进行大致的归纳 ...
- CentOS firewall添加开放端口
添加 firewall-cmd --zone=public --add-port=80/tcp --permanent (–permanent永久生效,没有此参数重启后失效) 重新载入 firewal ...
- 【SSH 基础】浅谈Hibernate--入门篇
Hibernate是什么 Hibernate是一个轻量级的ORMapping框架 ORMapping原理(Object Relational Mapping)就是把对象里面的数据和数据库里面的数据,依 ...
- 破碎纪念---记第二次Nexus4换屏
四太子的屏幕太易碎了.去年九月份在美国买的,十月便碎了,十二月修好,前几天又摔碎了. 本着对此机的喜爱,今天就进行了第二次换屏. 用同事的话说,如今已经是熟练工种了. 先来看看破碎景象: 右下角破碎, ...
- js 返回顶部
<script> window.onload = function(){ var oTop = document.getElementById("to_top"); v ...
- gitlab结构分析
1 gitlab的工作流程 2
- linux常见基础问题
1,32位与64位的区别,怎么查看系统版本? 32位相比于64位处理速度更慢一些,64位同样也比32位更占内存.用户体验上没有区别:用uname -a 查看系统版本信息 2,swap分区的作用是什么 ...
- dom小练习
dom小练习 学习要点 综合运用学过的知识完成几个综合小练习,巩固学过的知识. 阶段小练习8-1:改变网页字体的大小 要求和提示: 要求:当用户选择‘大/中/小’的选项时,页面字体发生相应的变化 阶段 ...
- 转 source insight 复制后光标在前面
source insight 里编辑的时候,每次粘贴后,光标停留在粘贴内容的前面. 我想把它设定为 粘贴后,光标移动倒粘贴内容的后面. 怎么做? 这是个设置问题,按照下面的步骤设定就可以了. Opti ...