RegionSelector(地区选择器)
简介
JavaShop IOS端地区选择器,最高支持四级地区选择,可定制性强,可随意切换UI配色,图标等
使用示例
RegionSelector<RegionListBean>.build()
.setDataEngine {[weak self] (data, dataSource) in
regionApi.request(.get(parentId: data == nil ? 0 :(data?.getId())!))
.subscribeOn(ConcurrentDispatchQueueScheduler(qos: .userInteractive))
.observeOn(MainScheduler.instance)
.filterSuccessfulStatusCodes()
.mapInstance(RegionData.self)
.subscribe(onSuccess: { (datas) in
dataSource(datas.data!)
}, onError: { (error) in
Log.error(error)
}).addDisposableTo((self?.disposeBag)!)
}.setResultListener { (result) in
Log.info(result.toString())
.show(vc : self)
struct RegionData: HandyJSON {
var result : Int? = 0
var message:String? = ""
var data :[RegionListBean]? = [RegionListBean]()
}
struct RegionListBean :HandyJSON , RegionIInter{
var region_id :Int = 0
var local_name:String = ""
var region_grade:Int = 0
var p_region_id:Int = 0
var childnum:Int = 0
var cod:String = ""
var zipcode:String = ""
func getLevel() -> RegionLevel {
switch region_grade {
case 1:
return RegionLevel.FIRST
case 2:
return RegionLevel.SECOND
case 3:
return RegionLevel.THIRD
case 4:
return RegionLevel.FOURTH
default:
return RegionLevel.ERROR
}
}
func getName() -> String {
return local_name
}
func getId() -> Int {
return region_id
}
}
常用方法