iOS开发 - 仿京东添加收货地址效果

本文介绍了一种自定义地址选择器的实现方法,适用于仅支持部分地区配送的应用场景。该方案通过保存特定地区的层级信息(如河北省-石家庄市-县区),并利用UITableView展示和选择地区,同时支持地区信息的动态更新。

这里写图片描述
先来说说她的工作原理:我们常见的地址选择是picker对吧?很多都是,基本上是根据公安部公布的API获取到的全国省市区街道的信息,组装成一个picker,然后通过picker的代理方法一步步展示出来。但是有些平台并不支持全国的配送,所以他们只列出支持的地区,而且还会根据当地增加新区来动态改变地区信息,这就导致我们不能使用网上组装好的plist地区信息,每一步都需要重新来获取,于是乎,京东这种模式就出来了(博主就见过京东这么搞,别的app没见过),刚好博主项目中有遇到这样的需求,所以就写了一个,本着开源精神,就在这里贡献出来了。

这里博主没有用即时接口,而是保存了三个plist文件,河北省->石家庄市->县区,因为
每一步都需要重新下载当前选择的地区的下级辖区。
首先是三个tableView,注意看一点,只有省的时候tableView是不能滑动切换的,大
于1个时才会滑动切换,头部标题按钮可点选,且长度自适应,不过太长的地区都属于偏远
地区,一般来说少。
还有一点:博主这里的代码用的是相对布局,采用系数,新增加一个CGRectMakes,具体
做法,见博客,使用时定义在header.h中,引入pch文件中。代码中不关你是Masonry还是系数,不需要改什么,直接就可以用,且完全适配,无非是颜色和字体大小的区别。

代码就不放在这里了,源代码见github:点击前往下载

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

CodingFire

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值