使用UIPickerView实现简单的城市选择器

UIPickerView是apple提供的选择器控件,可以根据业务需求生成单列或多列的选择器.
下面举例实现一个”省份-城市”联动的两列选择器.

查看源码(oc+swift)

效果图

效果图

数据源格式

因为只是一个简单的示例,所以在网上随便找了一个plist文件,数据格式截图如下:
数据格式

实现思路

与UITableView一样,UIPickerView需要开发者实现其UIPickerViewDataSourceUIPickerViewDelegate协议.

UIPickerViewDataSource

UIPickerViewDataSource包含两个必须要实现的数据源方法numberOfComponentsInPickerViewnumberOfRowsInComponent,分别用来告诉系统我们实现的选择器有几列,每一列又有多少行.

由于我们要实现的是省份-城市二级联动效果,所以在第一个方法中返回2,而针对每一个省份对应着不同的城市,当滚动第一列省份列表时,第二列的城市列表要对应刷新,所以我们需要一个cityArray数组来保存当前省份对应的城市.这样,在滚动省份时只需要刷新第二列的数据即可.

UIPickerViewDelegate

UIPickerViewDelegate主要包含了返回pickerView宽高及响应选择事件的方法.
注意,UIPickerView有默认高度,代码设置高度是无效的.
实现省份-城市的列表联动主要是处理pickerView:didSelectRow:inComponent:方法,当省份选择时,刷新城市列表,并将城市列表滚动到第一列.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值