Swift4.2 封装仿京东、淘宝地址选择器WMAddressPicker

项目中有添加收货地址功能,由于刚进行Swift开发,没有存货,系统的PickerView界面太过于... 你懂的,
也没在网上找到看的顺眼且合适的,项目比较急,索性就自己封装个,就是WMAddressPicker,谢谢简书,给有需要的猿类参考或者使用。

在开始介绍前,先介绍两个第三方框架,HandyJSON 和 IBAnimatable,前者就不必说了,Swift开发必备,百度搜索一大片,浅谈的、深究的,各种介绍,足够你了解HandyJSON,阿里出品必属精品。
对于IBAnimatable,谁用过谁知道,强大、使用简单、便捷、效果炫酷的转场动画框架,使用方式如Swift标准库一样优雅,还支持扩展 Xib、Storyboard,添加、修改一些原生Xib、Storyboard不具备的属性,最简单的例子,给控件设置 cornerRadius,直接在Xib中设置,如同设置Frame一样简单。具体的用法请在 Github上搜一搜,绝对会给你想象不到的惊喜。

WMAddressPicker,需依赖 HandyJSON(用于解析地址 json 数据) 和 IBAnimatable(模态控制器),如果不想导入 IBAnimatable,可自行写模态转场动画
效果图:

WMAddressPicker.gif

使用

class ViewController: UIViewController {
    @IBOutlet weak var addressLabel: UILabel!
    /// 懒加载
    lazy var addressPicker: WMAddressPicker = {
        let nib = UINib(nibName: "WMAddressPicker", bundle: nil)
        let picker = nib.instantiate(withOwner: nil, options: nil).first as! WMAddressPicker
        picker.modalSize = (width: .full, height: .threeQuarters)
        picker.modalPosition = .bottomCenter
        picker.cornerRadius = 10
        /// 该回调方法可以在本类任意地方写
        picker.selectedAreaCompleted = { [weak self] (province, city, district) in
            self?.addressLabel.text = province + " " + city + " " + district
        }
        return picker
    }()
    /// 调用
    @IBAction func selectButonClicked(_ sender: Any) {
        self.present(addressPicker, animated: true, completion: nil)
    }
}

GitHub:WMAddressPicker

有需要的猿类可以参考或使用,如果对你有帮助,甚感欣慰~ !

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 发现 关注 消息 iOS 第三方库、插件、知名博客总结 作者大灰狼的小绵羊哥哥关注 2017.06.26 09:4...
    肇东周阅读 12,259评论 4 61
  • 在金城,三月的阳光暖得喜人 草坪上的小草刚探出半个脑袋 就开始吐露怀揣了一个冬天的心事 阳光下,有多少秘密需要口如...
    gezhe1967阅读 768评论 16 22
  • 在一颗小星星底下 我为称之为必然向巧合致歉。 倘若有任何误谬之处,我向必然致歉。 但愿快乐不会因我视其为己有而生气...
    Hippocrene阅读 25,489评论 0 16
  • Book report onThe Life and Adventures of Robinson Crusoe ...
    曦城365阅读 423评论 6 3
  • 青春,是画地为牢而又挣脱牢笼的过程。 青春,是作茧自缚而又振翅飞翔的磨砺。 青春,是饮鸩止渴而又刮骨疗毒的疯狂。 ...
    潇湘蘅芜梦阅读 430评论 0 1