美文网首页2015技术笔记
2015笔记——省市区Picker

2015笔记——省市区Picker

作者: 满庭花醉三千客 | 来源:发表于2018-07-27 09:26 被阅读4次

    最近做了一个省市区的pickerView,真的是大费周章啊。

    首先:

    从本地plist文件读取省市区的数据

    屏幕快照 2015-11-20 09.04.21.png

    分析了数据的类型,得到结果如下:

    屏幕快照 2015-11-20 09.11.30.png

    总的是一个字典dict,字典dict中有33个键值对,对应的key是33个省(直辖市)的数据,该数据是数组。数组中仅有一个字典元素A,字典A中对应着各个市区的数据。字典A中的全部key是该省的全部市区的名字,value是数组,对应该市的全部地区。

    声明这几个属性:

    ProvinceArray,CityArray,AreaArray 和SelectArray(单元素数组,该元素为字典)。分别存放省份的数据,城市的数据,地区的数据和选中省份的数据。

    ProvinceIndex,CityIndex,AreaIndex。分别为选中的省市区的index。

    然后就是创建PickerView了:

    屏幕快照 2015-11-20 09.22.54.png

    创建好了之后,就是实现代理方法了:

    屏幕快照 2015-11-20 09.25.14.png 屏幕快照 2015-11-20 09.25.53.png

    最最关键的就是当picker选中了某一行时:

    如果是左侧的轮子,则说明你滑动了省份的轮子,此时:

    要从ProvinceArray中获取到省份的名称,然后去dict字典中获取到对应的数组数据。将SelectedArray刷新为选中省份的数据数组,然后根据SelectArray依次取出市区的CityArray,同时也刷新地区的AreaArray。同时设置ProvinceIndex为row,CityIndex为0,AreaIndex为0。

    如果是中间的轮子,则说明你滑动的是城市的轮子,此时:

    从SelectArray中获取到城市的CityArray,同时也刷新地区的AreaArray。同时设置CityIndex为row,AreaIndex为0。

    如果是右边的轮子,则说明滑动的是地区的轮子,此时:

    只刷新界面就好,同时设置AreaIndex为row。

    然后就出效果了啦:

    Simulator Screen Shot 2015年11月20日 09.53.54.png

    有没有觉得Picker显示的文本效果不全,看起来不爽?

    嗯,我也是这么觉得的。

    然后找到了这么个神技:

    屏幕快照 2015-11-20 09.56.52.png

    哈哈,看效果:

    Simulator Screen Shot 2015年11月20日 09.57.50.png

    有没有那么点心动呢?加油!效果棒棒哒~

    相关文章

      网友评论

        本文标题:2015笔记——省市区Picker

        本文链接:https://www.haomeiwen.com/subject/rxlwmftx.html