OC版本地址:
` https://github.com/FighterLightning/ZHFJDAddressOC.git
-
下载该demo。把ProvinceModel.swift(必须),ZHFAddTitleAddressView.swift(必须) AddressCell.swift(必须) NetworkTools.swift(网络请求类,本地数据不需要,对Moya做简单的处理可自写)拖进项目
-
在 Podfile 中添加:
-
pod 'Moya'
//网络请求(如果只是本地数据,不需要添加) -
pod 'ObjectMapper'
//字典转模型(如果你项目中和这个不一致,可以以你项目为准) -
pod 'Chrysan', :git => 'https://github.com/Harley-xk/Chrysan.git'
//第三方加载框(如果不需要,完全不用添加)
- 你主要需要关注的是ZHFAddTitleAddressView.m 这个方法
func getAddressMessageData(addressID: NSInteger, provinceIdOrCityId: NSInteger) 这个方法。addressID 决定的是展现那个tableView, provinceIdOrCityId这个决定要请求的是省市区还是乡镇。
看这个地址选择器的大致框架是UIScrollView与UITableView结合的附带一个展示头的东西.主要就是逻辑展示问题。
func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath)
通过对这个点击方法里 self.titleMarr( 存放选中地址名字的可变数组)
self.titleIDMarr (存放选中地址ID的可变数组)
进行增加,删除,替换。
然后获得下一级数据(同时判断是否有下一级,没有直接回收地址选择器)
把当前地址展示,同时把ID传入控制器。
如果感觉有帮助,感谢fork star! 该demo地址: