美文网首页完整项目电商
Swift4.2 封装仿京东、淘宝地址选择器WMAddressP

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

作者: 南心芭比 | 来源:发表于2018-12-27 23:28 被阅读0次

项目中有添加收货地址功能,由于刚进行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

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

相关文章

网友评论

    本文标题:Swift4.2 封装仿京东、淘宝地址选择器WMAddressP

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