diff --git a/.gitignore b/.gitignore index 93c86d3..0d17244 100644 --- a/.gitignore +++ b/.gitignore @@ -1,8 +1,13 @@ -# OS X +### macOS ### + .DS_Store -# Xcode + +## Build generated build/ +DerivedData/ + +## Various settings *.pbxuser !default.pbxuser *.mode1v3 @@ -12,26 +17,60 @@ build/ *.perspectivev3 !default.perspectivev3 xcuserdata/ -*.xccheckout -profile + +## Other *.moved-aside -DerivedData +*.xccheckout +*.xcscmblueprint + +## Obj-C/Swift specific *.hmap *.ipa +*.dSYM.zip +*.dSYM -# Bundler -.bundle +# CocoaPods +Pods/ -# Add this line if you want to avoid checking in source code from Carthage dependencies. -# Carthage/Checkouts +# Carthage Carthage/Build -# We recommend against adding the Pods directory to your .gitignore. However -# you should judge for yourself, the pros and cons are mentioned at: -# https://guides.cocoapods.org/using/using-cocoapods.html#should-i-ignore-the-pods-directory-in-source-control -# -# Note: if you ignore the Pods directory, make sure to uncomment -# `pod install` in .travis.yml -# -# Pods/ +# fastlane +fastlane/report.xml +fastlane/Preview.html +fastlane/screenshots/**/*.png +fastlane/test_output + +iOSInjectionProject/ + +### Objective-C Patch ### + +### Swift ### + + +## Playgrounds +timeline.xctimeline +playground.xcworkspace + +# Swift Package Manager +Packages/ +Package.pins +Package.resolved +.build/ + + +# Accio dependency management +Dependencies/ +.accio/ + + +## Xcode Patch +*.xcodeproj/* +!*.xcodeproj/project.pbxproj +!*.xcodeproj/xcshareddata/ +!*.xcworkspace/contents.xcworkspacedata +/*.gcno +**/xcshareddata/WorkspaceSettings.xcsettings + + diff --git a/.travis.yml b/.travis.yml deleted file mode 100644 index 2cd4004..0000000 --- a/.travis.yml +++ /dev/null @@ -1,14 +0,0 @@ -# references: -# * https://www.objc.io/issues/6-build-tools/travis-ci/ -# * https://github.com/supermarin/xcpretty#usage - -osx_image: xcode7.3 -language: objective-c -# cache: cocoapods -# podfile: Example/Podfile -# before_install: -# - gem install cocoapods # Since Travis is not always on latest version -# - pod install --project-directory=Example -script: -- set -o pipefail && xcodebuild test -enableCodeCoverage YES -workspace Example/CSPickerView.xcworkspace -scheme CSPickerView-Example -sdk iphonesimulator9.3 ONLY_ACTIVE_ARCH=NO | xcpretty -- pod lib lint diff --git a/CSPickerView.podspec b/CSPickerView.podspec index cf7e0d6..4472379 100644 --- a/CSPickerView.podspec +++ b/CSPickerView.podspec @@ -8,35 +8,32 @@ Pod::Spec.new do |s| s.name = 'CSPickerView' - s.version = '0.1.0' - s.summary = 'A short description of CSPickerView.' - -# This description is used to generate tags and improve search results. -# * Think: What does it do? Why did you write it? What is the focus? -# * Try to keep it short, snappy and to the point. -# * Write the description between the DESC delimiters below. -# * Finally, don't worry about the indent, CocoaPods strips it! - - s.description = <<-DESC -TODO: Add long description of the pod here. - DESC - + s.version = '1.0.0' + s.summary = 'CSPickerView' + s.description = "多样式底部弹出样式选择器" s.homepage = 'https://github.com/Coder-Star/CSPickerView' - # s.screenshots = 'www.example.com/screenshots_1', 'www.example.com/screenshots_2' + s.screenshots = 'https://github.com/Coder-Star/CSPickerView/raw/main/Sceenshots/startAndEndDate.png', 'https://github.com/Coder-Star/CSPickerView/raw/main/Sceenshots/date.png' s.license = { :type => 'MIT', :file => 'LICENSE' } - s.author = { 'Coder-Star' => 'litianxing@nowcoder.com' } + s.author = { 'CoderStar' => '1340529758@qq.com' } s.source = { :git => 'https://github.com/Coder-Star/CSPickerView.git', :tag => s.version.to_s } - # s.social_media_url = 'https://twitter.com/' - + s.social_media_url = 'https://coder-star.github.io/' s.ios.deployment_target = '9.0' + s.swift_version = ["5","4.2"] + + s.default_subspec = 'framework' - s.source_files = 'CSPickerView/Classes/**/*' - - # s.resource_bundles = { - # 'CSPickerView' => ['CSPickerView/Assets/*.png'] - # } + s.subspec 'source' do |source| + source.source_files = 'LTXiOSUtils/Classes/Util/**/*.swift' + source.source_files = 'CSPickerView/Classes/**/*' + source.resource_bundles = { + 'CSPickerView' => ['CSPickerView/Assets/**/*'] + } + source.frameworks = 'Foundation', 'UIKit' + end - # s.public_header_files = 'Pod/Classes/**/*.h' - # s.frameworks = 'UIKit', 'MapKit' - # s.dependency 'AFNetworking', '~> 2.3' + s.subspec 'framework' do |framework| + framework.frameworks = 'Foundation', 'UIKit' + framework.ios.vendored_framework = 'CSPickerView/Frameworks/*.framework' + framework.resources = 'CSPickerView/Frameworks/*.bundle' + end end diff --git a/CSPickerView/Assets/.gitkeep b/CSPickerView/Assets/.gitkeep deleted file mode 100644 index e69de29..0000000 diff --git a/CSPickerView/Assets/Address.plist b/CSPickerView/Assets/Address.plist new file mode 100755 index 0000000..6d975dc --- /dev/null +++ b/CSPickerView/Assets/Address.plist @@ -0,0 +1,5391 @@ + + + + + + 北京市 + + 0 + + 北京市 + + 东城区 + 西城区 + 朝阳区 + 丰台区 + 石景山区 + 海淀区 + 门头沟区 + 房山区 + 通州区 + 顺义区 + 昌平区 + 大兴区 + 怀柔区 + 平谷区 + 密云县 + 延庆县 + + + + + + 天津市 + + 0 + + 天津市 + + 和平区 + 河东区 + 河西区 + 南开区 + 河北区 + 红桥区 + 塘沽区 + 汉沽区 + 大港区 + 东丽区 + 西青区 + 津南区 + 北辰区 + 武清区 + 宝坻区 + 宁河县 + 静海县 + 蓟县 + + + + + + 上海市 + + 0 + + 上海市 + + 黄浦区 + 卢湾区 + 徐汇区 + 长宁区 + 静安区 + 普陀区 + 闸北区 + 虹口区 + 杨浦区 + 闵行区 + 宝山区 + 嘉定区 + 浦东新区 + 金山区 + 松江区 + 青浦区 + 南汇区 + 奉贤区 + 崇明县 + + + + + + 重庆市 + + 0 + + 重庆市 + + 万州区 + 涪陵区 + 渝中区 + 大渡口区 + 江北区 + 沙坪坝区 + 九龙坡区 + 南岸区 + 北碚区 + 万盛区 + 双桥区 + 渝北区 + 巴南区 + 黔江区 + 长寿区 + 江津区 + 合川区 + 永川区 + 南川区 + 綦江县 + 潼南县 + 铜梁县 + 大足县 + 荣昌县 + 璧山县 + 梁平县 + 城口县 + 丰都县 + 垫江县 + 武隆县 + 忠县 + 开县 + 云阳县 + 奉节县 + 巫山县 + 巫溪县 + 石柱土家族自治县 + 秀山土家族苗族自治县 + 酉阳土家族苗族自治县 + 彭水苗族土家族自治县 + + + + + + 河北省 + + 0 + + 石家庄市 + + 长安区 + 桥东区 + 桥西区 + 新华区 + 井陉矿区 + 裕华区 + 井陉县 + 正定县 + 栾城县 + 行唐县 + 灵寿县 + 高邑县 + 深泽县 + 赞皇县 + 无极县 + 平山县 + 元氏县 + 赵县 + 辛集市 + 藁城市 + 晋州市 + 新乐市 + 鹿泉市 + + + 1 + + 唐山市 + + 路南区 + 路北区 + 古冶区 + 开平区 + 丰南区 + 丰润区 + 滦县 + 滦南县 + 乐亭县 + 迁西县 + 玉田县 + 唐海县 + 遵化市 + 迁安市 + + + 2 + + 秦皇岛市 + + 海港区 + 山海关区 + 北戴河区 + 青龙满族自治县 + 昌黎县 + 抚宁县 + 卢龙县 + + + 3 + + 邯郸市 + + 邯山区 + 丛台区 + 复兴区 + 峰峰矿区 + 邯郸县 + 临漳县 + 成安县 + 大名县 + 涉县 + 磁县 + 肥乡县 + 永年县 + 邱县 + 鸡泽县 + 广平县 + 馆陶县 + 魏县 + 曲周县 + 武安市 + + + 4 + + 邢台市 + + 桥东区 + 桥西区 + 邢台县 + 临城县 + 内丘县 + 柏乡县 + 隆尧县 + 任县 + 南和县 + 宁晋县 + 巨鹿县 + 新河县 + 广宗县 + 平乡县 + 威县 + 清河县 + 临西县 + 南宫市 + 沙河市 + + + 5 + + 保定市 + + 新市区 + 北市区 + 南市区 + 满城县 + 清苑县 + 涞水县 + 阜平县 + 徐水县 + 定兴县 + 唐县 + 高阳县 + 容城县 + 涞源县 + 望都县 + 安新县 + 易县 + 曲阳县 + 蠡县 + 顺平县 + 博野县 + 雄县 + 涿州市 + 定州市 + 安国市 + 高碑店市 + + + 6 + + 张家口市 + + 桥东区 + 桥西区 + 宣化区 + 下花园区 + 宣化县 + 张北县 + 康保县 + 沽源县 + 尚义县 + 蔚县 + 阳原县 + 怀安县 + 万全县 + 怀来县 + 涿鹿县 + 赤城县 + 崇礼县 + + + 7 + + 承德市 + + 双桥区 + 双滦区 + 鹰手营子矿区 + 承德县 + 兴隆县 + 平泉县 + 滦平县 + 隆化县 + 丰宁满族自治县 + 宽城满族自治县 + 围场满族蒙古族自治县 + + + 8 + + 沧州市 + + 新华区 + 运河区 + 沧县 + 青县 + 东光县 + 海兴县 + 盐山县 + 肃宁县 + 南皮县 + 吴桥县 + 献县 + 孟村回族自治县 + 泊头市 + 任丘市 + 黄骅市 + 河间市 + + + 9 + + 廊坊市 + + 安次区 + 广阳区 + 固安县 + 永清县 + 香河县 + 大城县 + 文安县 + 大厂回族自治县 + 霸州市 + 三河市 + + + 10 + + 衡水市 + + 桃城区 + 枣强县 + 武邑县 + 武强县 + 饶阳县 + 安平县 + 故城县 + 景县 + 阜城县 + 冀州市 + 深州市 + + + + + + 山西省 + + 0 + + 太原市 + + 小店区 + 迎泽区 + 杏花岭区 + 尖草坪区 + 万柏林区 + 晋源区 + 清徐县 + 阳曲县 + 娄烦县 + 古交市 + + + 1 + + 大同市 + + 城区 + 矿区 + 南郊区 + 新荣区 + 阳高县 + 天镇县 + 广灵县 + 灵丘县 + 浑源县 + 左云县 + 大同县 + + + 2 + + 阳泉市 + + 城区 + 矿区 + 郊区 + 平定县 + 盂县 + + + 3 + + 长治市 + + 城区 + 郊区 + 长治县 + 襄垣县 + 屯留县 +平顺县 + 平顺县 + 黎城县 + 壶关县 + 长子县 + 武乡县 + 沁县 + 沁源县 + 潞城市 + + + 4 + + 晋城市 + + 城区 + 沁水县 + 阳城县 + 陵川县 + 泽州县 + 高平市 + + + 5 + + 朔州市 + + 朔城区 + 平鲁区 + 山阴县 + 应县 + 右玉县 + 怀仁县 + + + 6 + + 晋中市 + + 榆次区 + 榆社县 + 左权县 + 和顺县 + 昔阳县 + 寿阳县 + 太谷县 + 祁县 + 平遥县 + 灵石县 + 介休市 + + + 7 + + 运城市 + + 盐湖区 + 临猗县 + 万荣县 + 闻喜县 + 稷山县 + 新绛县 + 绛县 + 垣曲县 + 夏县 + 平陆县 + 芮城县 + 永济市 + 河津市 + + + 8 + + 忻州市 + + 忻府区 + 定襄县 + 五台县 + 代县 + 繁峙县 + 宁武县 + 静乐县 + 神池县 + 五寨县 + 岢岚县 + 河曲县 + 保德县 + 偏关县 + 原平市 + + + 9 + + 临汾市 + + 尧都区 + 曲沃县 + 翼城县 + 襄汾县 + 洪洞县 + 古县 + 安泽县 + 浮山县 + 吉县 + 乡宁县 + 大宁县 + 隰县 + 永和县 + 蒲县 + 汾西县 + 侯马市 + 霍州市 + + + 10 + + 吕梁市 + + 离石区 + 文水县 + 交城县 + 兴县 + 临县 + 柳林县 + 石楼县 + 岚县 + 方山县 + 中阳县 + 交口县 + 孝义市 + 汾阳市 + + + + + + 内蒙古自治区 + + 0 + + 呼和浩特市 + + 新城区 + 回民区 + 玉泉区 + 赛罕区 + 土默特左旗 + 托克托县 + 和林格尔县 + 清水河县 + 武川县 + + + 1 + + 包头市 + + 东河区 + 昆都仑区 + 青山区 + 石拐区 + 白云鄂博矿区 + 九原区 + 土默特右旗 + 固阳县 + 达尔罕茂明安联合旗 + + + 2 + + 乌海市 + + 海勃湾区 + 海南区 + 乌达区 + + + 3 + + 赤峰市 + + 红山区 + 元宝山区 + 松山区 + 阿鲁科尔沁旗 + 巴林左旗 + 巴林右旗 + 林西县 + 克什克腾旗 + 翁牛特旗 + 喀喇沁旗 + 宁城县 + 敖汉旗 + + + 4 + + 通辽市 + + 科尔沁区 + 科尔沁左翼中旗 + 科尔沁左翼后旗 + 开鲁县 + 库伦旗 + 奈曼旗 + 扎鲁特旗 + 霍林郭勒市 + + + 5 + + 鄂尔多斯市 + + 东胜区 + 达拉特旗 + 准格尔旗 + 鄂托克前旗 + 鄂托克旗 + 杭锦旗 + 乌审旗 + 伊金霍洛旗 + + + 6 + + 呼伦贝尔市 + + 海拉尔区 + 阿荣旗 + 莫力达瓦达斡尔族自治旗 + 鄂伦春自治旗 + 鄂温克族自治旗 + 陈巴尔虎旗 + 新巴尔虎左旗 + 新巴尔虎右旗 + 满洲里市 + 牙克石市 + 扎兰屯市 + 额尔古纳市 + 根河市 + + + 7 + + 巴彦淖尔市 + + 临河区 + 五原县 + 磴口县 + 乌拉特前旗 + 乌拉特中旗 + 乌拉特后旗 + 杭锦后旗 + + + 8 + + 乌兰察布市 + + 集宁区 + 卓资县 + 化德县 + 商都县 + 兴和县 + 凉城县 + 察哈尔右翼前旗 + 察哈尔右翼中旗 + 察哈尔右翼后旗 + 四子王旗 + 丰镇市 + + + 9 + + 兴安盟 + + 乌兰浩特市 + 阿尔山市 + 科尔沁右翼前旗 + 科尔沁右翼中旗 + 扎赉特旗 + 突泉县 + + + 10 + + 锡林郭勒盟 + + 二连浩特市 + 锡林浩特市 + 阿巴嘎旗 + 苏尼特左旗 + 苏尼特右旗 + 东乌珠穆沁旗 + 西乌珠穆沁旗 + 太仆寺旗 + 镶黄旗 + 正镶白旗 + 正蓝旗 + 多伦县 + + + 11 + + 阿拉善盟 + + 阿拉善左旗 + 阿拉善右旗 + 额济纳旗 + + + + + + 辽宁省 + + 0 + + 沈阳市 + + 和平区 + 沈河区 + 大东区 + 皇姑区 + 铁西区 + 苏家屯区 + 东陵区 + 沈北新区 + 于洪区 + 辽中县 + 康平县 + 法库县 + 新民市 + + + 1 + + 大连市 + + 中山区 + 西岗区 + 沙河口区 + 甘井子区 + 旅顺口区 + 金州区 + 长海县 + 瓦房店市 + 普兰店市 + 庄河市 + + + 2 + + 鞍山市 + + 铁东区 + 铁西区 + 立山区 + 千山区 + 台安县 + 岫岩满族自治县 + 海城市 + + + 3 + + 抚顺市 + + 新抚区 + 东洲区 + 望花区 + 顺城区 + 抚顺县 + 新宾满族自治县 + 清原满族自治县 + + + 4 + + 本溪市 + + 平山区 + 溪湖区 + 明山区 + 南芬区 + 本溪满族自治县 + 桓仁满族自治县 + + + 5 + + 丹东市 + + 元宝区 + 振兴区 + 振安区 + 宽甸满族自治县 + 东港市 + 凤城市 + + + 6 + + 锦州市 + + 古塔区 + 凌河区 + 太和区 + 黑山县 + 义县 + 凌海市 + 北镇市 + + + 7 + + 营口市 + + 站前区 + 西市区 + 鲅鱼圈区 + 老边区 + 盖州市 + 大石桥市 + + + 8 + + 阜新市 + + 海州区 + 新邱区 + 太平区 + 清河门区 + 细河区 + 阜新蒙古族自治县 + 彰武县 + + + 9 + + 辽阳市 + + 白塔区 + 文圣区 + 宏伟区 + 弓长岭区 + 太子河区 + 辽阳县 + 灯塔市 + + + 10 + + 盘锦市 + + 双台子区 + 兴隆台区 + 大洼县 + 盘山县 + + + 11 + + 铁岭市 + + 银州区 + 清河区 + 铁岭县 + 西丰县 + 昌图县 + 调兵山市 + 开原市 + + + 12 + + 朝阳市 + + 双塔区 + 龙城区 + 朝阳县 + 建平县 + 喀喇沁左翼蒙古族自治县 + 北票市 + 凌源市 + + + 13 + + 葫芦岛市 + + 连山区 + 龙港区 + 南票区 + 绥中县 + 建昌县 + 兴城市 + + + + + + 吉林省 + + 0 + + 长春市 + + 南关区 + 宽城区 + 朝阳区 + 二道区 + 绿园区 + 双阳区 + 农安县 + 九台市 + 榆树市 + 德惠市 + + + 1 + + 吉林市 + + 昌邑区 + 龙潭区 + 船营区 + 丰满区 + 永吉县 + 蛟河市 + 桦甸市 + 舒兰市 + 磐石市 + + + 2 + + 四平市 + + 铁西区 + 铁东区 + 梨树县 + 伊通满族自治县 + 公主岭市 + 双辽市 + + + 3 + + 辽源市 + + 龙山区 + 西安区 + 东丰县 + 东辽县 + + + 4 + + 通化市 + + 东昌区 + 二道江区 + 通化县 + 辉南县 + 柳河县 + 梅河口市 + 集安市 + + + 5 + + 白山市 + + 八道江区 + 江源区 + 抚松县 + 靖宇县 + 长白朝鲜族自治县 + 临江市 + + + 6 + + 松原市 + + 宁江区 + 前郭尔罗斯蒙古族自治县 + 长岭县 + 乾安县 + 扶余县 + + + 7 + + 白城市 + + 洮北区 + 镇赉县 + 通榆县 + 洮南市 + 大安市 + + + 8 + + 延边朝鲜族自治州 + + 延吉市 + 图们市 + 敦化市 + 珲春市 + 龙井市 + 和龙市 + 汪清县 + 安图县 + + + + + + 黑龙江省 + + 0 + + 哈尔滨市 + + 道里区 + 南岗区 + 道外区 + 平房区 + 松北区 + 香坊区 + 呼兰区 + 阿城区 + 依兰县 + 方正县 + 宾县 + 巴彦县 + 木兰县 + 通河县 + 延寿县 + 双城市 + 尚志市 + 五常市 + + + 1 + + 齐齐哈尔市 + + 龙沙区 + 建华区 + 铁锋区 + 昂昂溪区 + 富拉尔基区 + 碾子山区 + 梅里斯达斡尔族区 + 龙江县 + 依安县 + 泰来县 + 甘南县 + 富裕县 + 克山县 + 克东县 + 拜泉县 + 讷河市 + + + 2 + + 鸡西市 + + 鸡冠区 + 恒山区 + 滴道区 + 梨树区 + 城子河区 + 麻山区 + 鸡东县 + 虎林市 + 密山市 + + + 3 + + 鹤岗市 + + 向阳区 + 工农区 + 南山区 + 兴安区 + 东山区 + 兴山区 + 萝北县 + 绥滨县 + + + 4 + + 双鸭山市 + + 尖山区 + 岭东区 + 四方台区 + 宝山区 + 集贤县 + 友谊县 + 宝清县 + 饶河县 + + + 5 + + 大庆市 + + 萨尔图区 + 龙凤区 + 让胡路区 + 红岗区 + 大同区 + 肇州县 + 肇源县 + 林甸县 + 杜尔伯特蒙古族自治县 + + + 6 + + 伊春市 + + 伊春区 + 南岔区 + 友好区 + 西林区 + 翠峦区 + 新青区 + 美溪区 + 金山屯区 + 五营区 + 乌马河区 + 汤旺河区 + 带岭区 + 乌伊岭区 + 红星区 + 上甘岭区 + 嘉荫县 + 铁力市 + + + 7 + + 佳木斯市 + + 向阳区 + 前进区 + 东风区 + 郊区 + 桦南县 + 桦川县 + 汤原县 + 抚远县 + 同江市 + 富锦市 + + + 8 + + 七台河市 + + 新兴区 + 桃山区 + 茄子河区 + 勃利县 + + + 9 + + 牡丹江市 + + 东安区 + 阳明区 + 爱民区 + 西安区 + 东宁县 + 林口县 + 绥芬河市 + 海林市 + 宁安市 + 穆棱市 + + + 10 + + 黑河市 + + 爱辉区 + 嫩江县 + 逊克县 + 孙吴县 + 北安市 + 五大连池市 + + + 11 + + 绥化市 + + 北林区 + 望奎县 + 兰西县 + 青冈县 + 庆安县 + 明水县 + 绥棱县 + 安达市 + 肇东市 + 海伦市 + + + 12 + + 大兴安岭地区 + + 加格达奇区 + 松岭区 + 新林区 + 呼中区 + 呼玛县 + 塔河县 + 漠河县 + + + + + + 江苏省 + + 0 + + 南京市 + + 玄武区 + 白下区 + 秦淮区 + 建邺区 + 鼓楼区 + 下关区 + 浦口区 + 栖霞区 + 雨花台区 + 江宁区 + 六合区 + 溧水县 + 高淳县 + + + 1 + + 无锡市 + + 崇安区 + 南长区 + 北塘区 + 锡山区 + 惠山区 + 滨湖区 + 江阴市 + 宜兴市 + + + 2 + + 徐州市 + + 鼓楼区 + 云龙区 + 九里区 + 贾汪区 + 泉山区 + 丰县 + 沛县 + 铜山县 + 睢宁县 + 新沂市 + 邳州市 + + + 3 + + 常州市 + + 天宁区 + 钟楼区 + 戚墅堰区 + 新北区 + 武进区 + 溧阳市 + 金坛市 + + + 4 + + 苏州市 + + 沧浪区 + 平江区 + 金阊区 + 虎丘区 + 吴中区 + 相城区 + 常熟市 + 张家港市 + 昆山市 + 吴江市 + 太仓市 + + + 5 + + 南通市 + + 崇川区 + 港闸区 + 海安县 + 如东县 + 启东市 + 如皋市 + 通州市 + 海门市 + + + 6 + + 连云港市 + + 连云区 + 新浦区 + 海州区 + 赣榆县 + 东海县 + 灌云县 + 灌南县 + + + 7 + + 淮安市 + + 清河区 + 楚州区 + 淮阴区 + 清浦区 + 涟水县 + 洪泽县 + 盱眙县 + 金湖县 + + + 8 + + 盐城市 + + 亭湖区 + 盐都区 + 响水县 + 滨海县 + 阜宁县 + 射阳县 + 建湖县 + 东台市 + 大丰市 + + + 9 + + 扬州市 + + 广陵区 + 邗江区 + 维扬区 + 宝应县 + 仪征市 + 高邮市 + 江都市 + + + 10 + + 镇江市 + + 京口区 + 润州区 + 丹徒区 + 丹阳市 + 扬中市 + 句容市 + + + 11 + + 泰州市 + + 海陵区 + 高港区 + 兴化市 + 靖江市 + 泰兴市 + 姜堰市 + + + 12 + + 宿迁市 + + 宿城区 + 宿豫区 + 沭阳县 + 泗阳县 + 泗洪县 + + + + + + 浙江省 + + 0 + + 杭州市 + + 上城区 + 下城区 + 江干区 + 拱墅区 + 西湖区 + 滨江区 + 萧山区 + 余杭区 + 桐庐县 + 淳安县 + 建德市 + 富阳市 + 临安市 + + + 1 + + 宁波市 + + 海曙区 + 江东区 + 江北区 + 北仑区 + 镇海区 + 鄞州区 + 象山县 + 宁海县 + 余姚市 + 慈溪市 + 奉化市 + + + 2 + + 温州市 + + 鹿城区 + 龙湾区 + 瓯海区 + 洞头县 + 永嘉县 + 平阳县 + 苍南县 + 文成县 + 泰顺县 + 瑞安市 + 乐清市 + + + 3 + + 嘉兴市 + + 南湖区 + 秀洲区 + 嘉善县 + 海盐县 + 海宁市 + 平湖市 + 桐乡市 + + + 4 + + 湖州市 + + 吴兴区 + 南浔区 + 德清县 + 长兴县 + 安吉县 + + + 5 + + 绍兴市 + + 越城区 + 绍兴县 + 新昌县 + 诸暨市 + 上虞市 + 嵊州市 + + + 6 + + 金华市 + + 婺城区 + 金东区 + 武义县 + 浦江县 + 磐安县 + 兰溪市 + 义乌市 + 东阳市 + 永康市 + + + 7 + + 衢州市 + + 柯城区 + 衢江区 + 常山县 + 开化县 + 龙游县 + 江山市 + + + 8 + + 舟山市 + + 定海区 + 普陀区 + 岱山县 + 嵊泗县 + + + 9 + + 台州市 + + 椒江区 + 黄岩区 + 路桥区 + 玉环县 + 三门县 + 天台县 + 仙居县 + 温岭市 + 临海市 + + + 10 + + 丽水市 + + 莲都区 + 青田县 + 缙云县 + 遂昌县 + 松阳县 + 云和县 + 庆元县 + 景宁畲族自治县 + 龙泉市 + + + + + + 安徽省 + + 0 + + 合肥市 + + 瑶海区 + 庐阳区 + 蜀山区 + 包河区 + 长丰县 + 肥东县 + 肥西县 + + + 1 + + 芜湖市 + + 镜湖区 + 弋江区 + 鸠江区 + 三山区 + 芜湖县 + 繁昌县 + 南陵县 + + + 2 + + 蚌埠市 + + 龙子湖区 + 蚌山区 + 禹会区 + 淮上区 + 怀远县 + 五河县 + 固镇县 + + + 3 + + 淮南市 + + 大通区 + 田家庵区 + 谢家集区 + 八公山区 + 潘集区 + 凤台县 + + + 4 + + 马鞍山市 + + 金家庄区 + 花山区 + 雨山区 + 当涂县 + + + 5 + + 淮北市 + + 杜集区 + 相山区 + 烈山区 + 濉溪县 + + + 6 + + 铜陵市 + + 铜官山区 + 狮子山区 + 郊区 + 铜陵县 + + + 7 + + 安庆市 + + 迎江区 + 大观区 + 宜秀区 + 怀宁县 + 枞阳县 + 潜山县 + 太湖县 + 宿松县 + 望江县 + 岳西县 + 桐城市 + + + 8 + + 黄山市 + + 屯溪区 + 黄山区 + 徽州区 + 歙县 + 休宁县 + 黟县 + 祁门县 + + + 9 + + 滁州市 + + 琅琊区 + 南谯区 + 来安县 + 全椒县 + 定远县 + 凤阳县 + 天长市 + 明光市 + + + 10 + + 阜阳市 + + 颍州区 + 颍东区 + 颍泉区 + 临泉县 + 太和县 + 阜南县 + 颍上县 + 界首市 + + + 11 + + 宿州市 + + 埇桥区 + 砀山县 + 萧县 + 灵璧县 + 泗县 + + + 12 + + 巢湖市 + + 居巢区 + 庐江县 + 无为县 + 含山县 + 和县 + + + 13 + + 六安市 + + 金安区 + 裕安区 + 寿县 + 霍邱县 + 舒城县 + 金寨县 + 霍山县 + + + 14 + + 亳州市 + + 谯城区 + 涡阳县 + 蒙城县 + 利辛县 + + + 15 + + 池州市 + + 贵池区 + 东至县 + 石台县 + 青阳县 + + + 16 + + 宣城市 + + 宣州区 + 郎溪县 + 广德县 + 泾县 + 绩溪县 + 旌德县 + 宁国市 + + + + + + 福建省 + + 0 + + 福州市 + + 鼓楼区 + 台江区 + 仓山区 + 马尾区 + 晋安区 + 闽侯县 + 连江县 + 罗源县 + 闽清县 + 永泰县 + 平潭县 + 福清市 + 长乐市 + + + 1 + + 厦门市 + + 思明区 + 海沧区 + 湖里区 + 集美区 + 同安区 + 翔安区 + + + 2 + + 莆田市 + + 城厢区 + 涵江区 + 荔城区 + 秀屿区 + 仙游县 + + + 3 + + 三明市 + + 梅列区 + 三元区 + 明溪县 + 清流县 + 宁化县 + 大田县 + 尤溪县 + 沙县 + 将乐县 + 泰宁县 + 建宁县 + 永安市 + + + 4 + + 泉州市 + + 鲤城区 + 丰泽区 + 洛江区 + 泉港区 + 惠安县 + 安溪县 + 永春县 + 德化县 + 金门县 + 石狮市 + 晋江市 + 南安市 + + + 5 + + 漳州市 + + 芗城区 + 龙文区 + 云霄县 + 漳浦县 + 诏安县 + 长泰县 + 东山县 + 南靖县 + 平和县 + 华安县 + 龙海市 + + + 6 + + 南平市 + + 延平区 + 顺昌县 + 浦城县 + 光泽县 + 松溪县 + 政和县 + 邵武市 + 武夷山市 + 建瓯市 + 建阳市 + + + 7 + + 龙岩市 + + 新罗区 + 长汀县 + 永定县 + 上杭县 + 武平县 + 连城县 + 漳平市 + + + 8 + + 宁德市 + + 蕉城区 + 霞浦县 + 古田县 + 屏南县 + 寿宁县 + 周宁县 + 柘荣县 + 福安市 + 福鼎市 + + + + + + 江西省 + + 0 + + 南昌市 + + 东湖区 + 西湖区 + 青云谱区 + 湾里区 + 青山湖区 + 南昌县 + 新建县 + 安义县 + 进贤县 + + + 1 + + 景德镇市 + + 昌江区 + 珠山区 + 浮梁县 + 乐平市 + + + 2 + + 萍乡市 + + 安源区 + 湘东区 + 莲花县 + 上栗县 + 芦溪县 + + + 3 + + 九江市 + + 庐山区 + 浔阳区 + 九江县 + 武宁县 + 修水县 + 永修县 + 德安县 + 星子县 + 都昌县 + 湖口县 + 彭泽县 + 瑞昌市 + + + 4 + + 新余市 + + 渝水区 + 分宜县 + + + 5 + + 鹰潭市 + + 月湖区 + 余江县 + 贵溪市 + + + 6 + + 赣州市 + + 章贡区 + 赣县 + 信丰县 + 大余县 + 上犹县 + 崇义县 + 安远县 + 龙南县 + 定南县 + 全南县 + 宁都县 + 于都县 + 兴国县 + 会昌县 + 寻乌县 + 石城县 + 瑞金市 + 南康市 + + + 7 + + 吉安市 + + 吉州区 + 青原区 + 吉安县 + 吉水县 + 峡江县 + 新干县 + 永丰县 + 泰和县 + 遂川县 + 万安县 + 安福县 + 永新县 + 井冈山市 + + + 8 + + 宜春市 + + 袁州区 + 奉新县 + 万载县 + 上高县 + 宜丰县 + 靖安县 + 铜鼓县 + 丰城市 + 樟树市 + 高安市 + + + 9 + + 抚州市 + + 临川区 + 南城县 + 黎川县 + 南丰县 + 崇仁县 + 乐安县 + 宜黄县 + 金溪县 + 资溪县 + 东乡县 + 广昌县 + + + 10 + + 上饶市 + + 信州区 + 上饶县 + 广丰县 + 玉山县 + 铅山县 + 横峰县 + 弋阳县 + 余干县 + 鄱阳县 + 万年县 + 婺源县 + 德兴市 + + + + + + 山东省 + + 0 + + 济南市 + + 历下区 + 市中区 + 槐荫区 + 天桥区 + 历城区 + 长清区 + 平阴县 + 济阳县 + 商河县 + 章丘市 + + + 1 + + 青岛市 + + 市南区 + 市北区 + 四方区 + 黄岛区 + 崂山区 + 李沧区 + 城阳区 + 胶州市 + 即墨市 + 平度市 + 胶南市 + 莱西市 + + + 2 + + 淄博市 + + 淄川区 + 张店区 + 博山区 + 临淄区 + 周村区 + 桓台县 + 高青县 + 沂源县 + + + 3 + + 枣庄市 + + 市中区 + 薛城区 + 峄城区 + 台儿庄区 + 山亭区 + 滕州市 + + + 4 + + 东营市 + + 东营区 + 河口区 + 垦利县 + 利津县 + 广饶县 + + + 5 + + 烟台市 + + 芝罘区 + 福山区 + 牟平区 + 莱山区 + 长岛县 + 龙口市 + 莱阳市 + 莱州市 + 蓬莱市 + 招远市 + 栖霞市 + 海阳市 + + + 6 + + 潍坊市 + + 潍城区 + 寒亭区 + 坊子区 + 奎文区 + 临朐县 + 昌乐县 + 青州市 + 诸城市 + 寿光市 + 安丘市 + 高密市 + 昌邑市 + + + 7 + + 济宁市 + + 市中区 + 任城区 + 微山县 + 鱼台县 + 金乡县 + 嘉祥县 + 汶上县 + 泗水县 + 梁山县 + 曲阜市 + 兖州市 + 邹城市 + + + 8 + + 泰安市 + + 泰山区 + 岱岳区 + 宁阳县 + 东平县 + 新泰市 + 肥城市 + + + 9 + + 威海市 + + 环翠区 + 文登市 + 荣成市 + 乳山市 + + + 10 + + 日照市 + + 东港区 + 岚山区 + 五莲县 + 莒县 + + + 11 + + 莱芜市 + + 莱城区 + 钢城区 + + + 12 + + 临沂市 + + 兰山区 + 罗庄区 + 河东区 + 沂南县 + 郯城县 + 沂水县 + 苍山县 + 费县 + 平邑县 + 莒南县 + 蒙阴县 + 临沭县 + + + 13 + + 德州市 + + 德城区 + 陵县 + 宁津县 + 庆云县 + 临邑县 + 齐河县 + 平原县 + 夏津县 + 武城县 + 乐陵市 + 禹城市 + + + 14 + + 聊城市 + + 东昌府区 + 阳谷县 + 莘县 + 茌平县 + 东阿县 + 冠县 + 高唐县 + 临清市 + + + 15 + + 滨州市 + + 滨城区 + 惠民县 + 阳信县 + 无棣县 + 沾化县 + 博兴县 + 邹平县 + + + 16 + + 菏泽市 + + 牡丹区 + 曹县 + 单县 + 成武县 + 巨野县 + 郓城县 + 鄄城县 + 定陶县 + 东明县 + + + + + + 河南省 + + 0 + + 郑州市 + + 中原区 + 二七区 + 管城回族区 + 金水区 + 上街区 + 惠济区 + 中牟县 + 巩义市 + 荥阳市 + 新密市 + 新郑市 + 登封市 + + + 1 + + 开封市 + + 龙亭区 + 顺河回族区 + 鼓楼区 + 禹王台区 + 金明区 + 杞县 + 通许县 + 尉氏县 + 开封县 + 兰考县 + + + 2 + + 洛阳市 + + 老城区 + 西工区 + 瀍河回族区 + 涧西区 + 吉利区 + 洛龙区 + 孟津县 + 新安县 + 栾川县 + 嵩县 + 汝阳县 + 宜阳县 + 洛宁县 + 伊川县 + 偃师市 + + + 3 + + 平顶山市 + + 新华区 + 卫东区 + 石龙区 + 湛河区 + 宝丰县 + 叶县 + 鲁山县 + 郏县 + 舞钢市 + 汝州市 + + + 4 + + 安阳市 + + 文峰区 + 北关区 + 殷都区 + 龙安区 + 安阳县 + 汤阴县 + 滑县 + 内黄县 + 林州市 + + + 5 + + 鹤壁市 + + 鹤山区 + 山城区 + 淇滨区 + 浚县 + 淇县 + + + 6 + + 新乡市 + + 红旗区 + 卫滨区 + 凤泉区 + 牧野区 + 新乡县 + 获嘉县 + 原阳县 + 延津县 + 封丘县 + 长垣县 + 卫辉市 + 辉县市 + + + 7 + + 焦作市 + + 解放区 + 中站区 + 马村区 + 山阳区 + 修武县 + 博爱县 + 武陟县 + 温县 + 沁阳市 + 孟州市 + + + 8 + + 濮阳市 + + 华龙区 + 清丰县 + 南乐县 + 范县 + 台前县 + 濮阳县 + + + 9 + + 许昌市 + + 魏都区 + 许昌县 + 鄢陵县 + 襄城县 + 禹州市 + 长葛市 + + + 10 + + 漯河市 + + 源汇区 + 郾城区 + 召陵区 + 舞阳县 + 临颍县 + + + 11 + + 三门峡市 + + 湖滨区 + 渑池县 + 陕县 + 卢氏县 + 义马市 + 灵宝市 + + + 12 + + 南阳市 + + 宛城区 + 卧龙区 + 南召县 + 方城县 + 西峡县 + 镇平县 + 内乡县 + 淅川县 + 社旗县 + 唐河县 + 新野县 + 桐柏县 + 邓州市 + + + 13 + + 商丘市 + + 梁园区 + 睢阳区 + 民权县 + 睢县 + 宁陵县 + 柘城县 + 虞城县 + 夏邑县 + 永城市 + + + 14 + + 信阳市 + + 浉河区 + 平桥区 + 罗山县 + 光山县 + 新县 + 商城县 + 固始县 + 潢川县 + 淮滨县 + 息县 + + + 15 + + 周口市 + + 川汇区 + 扶沟县 + 西华县 + 商水县 + 沈丘县 + 郸城县 + 淮阳县 + 太康县 + 鹿邑县 + 项城市 + + + 16 + + 驻马店市 + + 驿城区 + 西平县 + 上蔡县 + 平舆县 + 正阳县 + 确山县 + 泌阳县 + 汝南县 + 遂平县 + 新蔡县 + + + 17 + + 济源市 + + 济源市 + + + + + + 湖北省 + + 0 + + 武汉市 + + 江岸区 + 江汉区 + 硚口区 + 汉阳区 + 武昌区 + 青山区 + 洪山区 + 东西湖区 + 汉南区 + 蔡甸区 + 江夏区 + 黄陂区 + 新洲区 + + + 1 + + 黄石市 + + 黄石港区 + 西塞山区 + 下陆区 + 铁山区 + 阳新县 + 大冶市 + + + 2 + + 十堰市 + + 茅箭区 + 张湾区 + 郧县 + 郧西县 + 竹山县 + 竹溪县 + 房县 + 丹江口市 + + + 3 + + 宜昌市 + + 西陵区 + 伍家岗区 + 点军区 + 猇亭区 + 夷陵区 + 远安县 + 兴山县 + 秭归县 + 长阳土家族自治县 + 五峰土家族自治县 + 宜都市 + 当阳市 + 枝江市 + + + 4 + + 襄樊市 + + 襄城区 + 樊城区 + 襄阳区 + 南漳县 + 谷城县 + 保康县 + 老河口市 + 枣阳市 + 宜城市 + + + 5 + + 鄂州市 + + 梁子湖区 + 华容区 + 鄂城区 + + + 6 + + 荆门市 + + 东宝区 + 掇刀区 + 京山县 + 沙洋县 + 钟祥市 + + + 7 + + 孝感市 + + 孝南区 + 孝昌县 + 大悟县 + 云梦县 + 应城市 + 安陆市 + 汉川市 + + + 8 + + 荆州市 + + 沙市区 + 荆州区 + 公安县 + 监利县 + 江陵县 + 石首市 + 洪湖市 + 松滋市 + + + 9 + + 黄冈市 + + 黄州区 + 团风县 + 红安县 + 罗田县 + 英山县 + 浠水县 + 蕲春县 + 黄梅县 + 麻城市 + 武穴市 + + + 10 + + 咸宁市 + + 咸安区 + 嘉鱼县 + 通城县 + 崇阳县 + 通山县 + 赤壁市 + + + 11 + + 随州市 + + 曾都区 + 广水市 + + + 12 + + 恩施土家族苗族自治州 + + 恩施市 + 利川市 + 建始县 + 巴东县 + 宣恩县 + 咸丰县 + 来凤县 + 鹤峰县 + + + 13 + + 仙桃市 + + 仙桃市 + + + 14 + + 潜江市 + + 潜江市 + + + 15 + + 天门市 + + 天门市 + + + 16 + + 神农架林区 + + 神农架林区 + + + + + + 湖南省 + + 0 + + 长沙市 + + 芙蓉区 + 天心区 + 岳麓区 + 开福区 + 雨花区 + 长沙县 + 望城县 + 宁乡县 + 浏阳市 + + + 1 + + 株洲市 + + 荷塘区 + 芦淞区 + 石峰区 + 天元区 + 株洲县 + 攸县 + 茶陵县 + 炎陵县 + 醴陵市 + + + 2 + + 湘潭市 + + 雨湖区 + 岳塘区 + 湘潭县 + 湘乡市 + 韶山市 + + + 3 + + 衡阳市 + + 珠晖区 + 雁峰区 + 石鼓区 + 蒸湘区 + 南岳区 + 衡阳县 + 衡南县 + 衡山县 + 衡东县 + 祁东县 + 耒阳市 + 常宁市 + + + 4 + + 邵阳市 + + 双清区 + 大祥区 + 北塔区 + 邵东县 + 新邵县 + 邵阳县 + 隆回县 + 洞口县 + 绥宁县 + 新宁县 + 城步苗族自治县 + 武冈市 + + + 5 + + 岳阳市 + + 岳阳楼区 + 云溪区 + 君山区 + 岳阳县 + 华容县 + 湘阴县 + 平江县 + 汨罗市 + 临湘市 + + + 6 + + 常德市 + + 武陵区 + 鼎城区 + 安乡县 + 汉寿县 + 澧县 + 临澧县 + 桃源县 + 石门县 + 津市市 + + + 7 + + 张家界市 + + 永定区 + 武陵源区 + 慈利县 + 桑植县 + + + 8 + + 益阳市 + + 资阳区 + 赫山区 + 南县 + 桃江县 + 安化县 + 沅江市 + + + 9 + + 郴州市 + + 北湖区 + 苏仙区 + 桂阳县 + 宜章县 + 永兴县 + 嘉禾县 + 临武县 + 汝城县 + 桂东县 + 安仁县 + 资兴市 + + + 10 + + 永州市 + + 零陵区 + 冷水滩区 + 祁阳县 + 东安县 + 双牌县 + 道县 + 江永县 + 宁远县 + 蓝山县 + 新田县 + 江华瑶族自治县 + + + 11 + + 怀化市 + + 鹤城区 + 中方县 + 沅陵县 + 辰溪县 + 溆浦县 + 会同县 + 麻阳苗族自治县 + 新晃侗族自治县 + 芷江侗族自治县 + 靖州苗族侗族自治县 + 通道侗族自治县 + 洪江市 + + + 12 + + 娄底市 + + 娄星区 + 双峰县 + 新化县 + 冷水江市 + 涟源市 + + + 13 + + 湘西土家族苗族自治州 + + 吉首市 + 泸溪县 + 凤凰县 + 花垣县 + 保靖县 + 古丈县 + 永顺县 + 龙山县 + + + + + + 广东省 + + 0 + + 广州市 + + 荔湾区 + 越秀区 + 海珠区 + 天河区 + 白云区 + 黄埔区 + 番禺区 + 花都区 + 南沙区 + 萝岗区 + 增城市 + 从化市 + + + 1 + + 韶关市 + + 武江区 + 浈江区 + 曲江区 + 始兴县 + 仁化县 + 翁源县 + 乳源瑶族自治县 + 新丰县 + 乐昌市 + 南雄市 + + + 2 + + 深圳市 + + 罗湖区 + 福田区 + 南山区 + 宝安区 + 龙岗区 + 盐田区 + + + 3 + + 珠海市 + + 香洲区 + 斗门区 + 金湾区 + + + 4 + + 汕头市 + + 龙湖区 + 金平区 + 濠江区 + 潮阳区 + 潮南区 + 澄海区 + 南澳县 + + + 5 + + 佛山市 + + 禅城区 + 南海区 + 顺德区 + 三水区 + 高明区 + + + 6 + + 江门市 + + 蓬江区 + 江海区 + 新会区 + 台山市 + 开平市 + 鹤山市 + 恩平市 + + + 7 + + 湛江市 + + 赤坎区 + 霞山区 + 坡头区 + 麻章区 + 遂溪县 + 徐闻县 + 廉江市 + 雷州市 + 吴川市 + + + 8 + + 茂名市 + + 茂南区 + 茂港区 + 电白县 + 高州市 + 化州市 + 信宜市 + + + 9 + + 肇庆市 + + 端州区 + 鼎湖区 + 广宁县 + 怀集县 + 封开县 + 德庆县 + 高要市 + 四会市 + + + 10 + + 惠州市 + + 惠城区 + 惠阳区 + 博罗县 + 惠东县 + 龙门县 + + + 11 + + 梅州市 + + 梅江区 + 梅县 + 大埔县 + 丰顺县 + 五华县 + 平远县 + 蕉岭县 + 兴宁市 + + + 12 + + 汕尾市 + + 城区 + 海丰县 + 陆河县 + 陆丰市 + + + 13 + + 河源市 + + 源城区 + 紫金县 + 龙川县 + 连平县 + 和平县 + 东源县 + + + 14 + + 阳江市 + + 江城区 + 阳西县 + 阳东县 + 阳春市 + + + 15 + + 清远市 + + 清城区 + 佛冈县 + 阳山县 + 连山壮族瑶族自治县 + 连南瑶族自治县 + 清新县 + 英德市 + 连州市 + + + 16 + + 东莞市 + + 东莞市 + + + 17 + + 中山市 + + 中山市 + + + 18 + + 潮州市 + + 湘桥区 + 潮安县 + 饶平县 + + + 19 + + 揭阳市 + + 榕城区 + 揭东县 + 揭西县 + 惠来县 + 普宁市 + + + 20 + + 云浮市 + + 云城区 + 新兴县 + 郁南县 + 云安县 + 罗定市 + + + + + + 广西壮族自治区 + + 0 + + 南宁市 + + 兴宁区 + 青秀区 + 江南区 + 西乡塘区 + 良庆区 + 邕宁区 + 武鸣县 + 隆安县 + 马山县 + 上林县 + 宾阳县 + 横县 + + + 1 + + 柳州市 + + 城中区 + 鱼峰区 + 柳南区 + 柳北区 + 柳江县 + 柳城县 + 鹿寨县 + 融安县 + 融水苗族自治县 + 三江侗族自治县 + + + 2 + + 桂林市 + + 秀峰区 + 叠彩区 + 象山区 + 七星区 + 雁山区 + 阳朔县 + 临桂县 + 灵川县 + 全州县 + 兴安县 + 永福县 + 灌阳县 + 龙胜各族自治县 + 资源县 + 平乐县 + 荔浦县 + 恭城瑶族自治县 + + + 3 + + 梧州市 + + 万秀区 + 蝶山区 + 长洲区 + 苍梧县 + 藤县 + 蒙山县 + 岑溪市 + + + 4 + + 北海市 + + 海城区 + 银海区 + 铁山港区 + 合浦县 + + + 5 + + 防城港市 + + 港口区 + 防城区 + 上思县 + 东兴市 + + + 6 + + 钦州市 + + 钦南区 + 钦北区 + 灵山县 + 浦北县 + + + 7 + + 贵港市 + + 港北区 + 港南区 + 覃塘区 + 平南县 + 桂平市 + + + 8 + + 玉林市 + + 玉州区 + 容县 + 陆川县 + 博白县 + 兴业县 + 北流市 + + + 9 + + 百色市 + + 右江区 + 田阳县 + 田东县 + 平果县 + 德保县 + 靖西县 + 那坡县 + 凌云县 + 乐业县 + 田林县 + 西林县 + 隆林各族自治县 + + + 10 + + 贺州市 + + 八步区 + 昭平县 + 钟山县 + 富川瑶族自治县 + + + 11 + + 河池市 + + 金城江区 + 南丹县 + 天峨县 + 凤山县 + 东兰县 + 罗城仫佬族自治县 + 环江毛南族自治县 + 巴马瑶族自治县 + 都安瑶族自治县 + 大化瑶族自治县 + 宜州市 + + + 12 + + 来宾市 + + 兴宾区 + 忻城县 + 象州县 + 武宣县 + 金秀瑶族自治县 + 合山市 + + + 13 + + 崇左市 + + 江洲区 + 扶绥县 + 宁明县 + 龙州县 + 大新县 + 天等县 + 凭祥市 + + + + + + 海南省 + + 0 + + 海口市 + + 秀英区 + 龙华区 + 琼山区 + 美兰区 + + + 1 + + 三亚市 + + 三亚市 + + + 2 + + 五指山市 + + 五指山市 + + + 3 + + 儋州市 + + 儋州市 + + + 4 + + 文昌市 + + 文昌市 + + + 5 + + 万宁市 + + 万宁市 + + + 6 + + 东方市 + + 东方市 + + + 7 + + 定安县 + + 定安县 + + + 8 + + 屯昌县 + + 屯昌县 + + + 9 + + 澄迈县 + + 澄迈县 + + + 10 + + 临高县 + + 临高县 + + + 11 + + 白沙黎族自治县 + + 白沙黎族自治县 + + + 12 + + 昌江黎族自治县 + + 昌江黎族自治县 + + + 13 + + 乐东黎族自治县 + + 乐东黎族自治县 + + + 14 + + 陵水黎族自治县 + + 陵水黎族自治县 + + + 15 + + 保亭黎族苗族自治县 + + 保亭黎族苗族自治县 + + + 16 + + 琼中黎族苗族自治县 + + 琼中黎族苗族自治县 + + + 17 + + 西沙群岛 + + 西沙群岛 + + + 18 + + 南沙群岛 + + 南沙群岛 + + + 19 + + 中沙群岛的岛礁及其海域 + + 中沙群岛的岛礁及其海域 + + + + + + 四川省 + + 0 + + 成都市 + + 锦江区 + 青羊区 + 金牛区 + 武侯区 + 成华区 + 龙泉驿区 + 青白江区 + 新都区 + 温江区 + 金堂县 + 双流县 + 郫县 + 大邑县 + 蒲江县 + 新津县 + 都江堰市 + 彭州市 + 邛崃市 + 崇州市 + + + 1 + + 自贡市 + + 自流井区 + 贡井区 + 大安区 + 沿滩区 + 荣县 + 富顺县 + + + 2 + + 攀枝花市 + + 东区 + 西区 + 仁和区 + 米易县 + 盐边县 + + + 3 + + 泸州市 + + 江阳区 + 纳溪区 + 龙马潭区 + 泸县 + 合江县 + 叙永县 + 古蔺县 + + + 4 + + 德阳市 + + 旌阳区 + 中江县 + 罗江县 + 广汉市 + 什邡市 + 绵竹市 + + + 5 + + 绵阳市 + + 涪城区 + 游仙区 + 三台县 + 盐亭县 + 安县 + 梓潼县 + 北川羌族自治县 + 平武县 + 江油市 + + + 6 + + 广元市 + + 市中区 + 元坝区 + 朝天区 + 旺苍县 + 青川县 + 剑阁县 + 苍溪县 + + + 7 + + 遂宁市 + + 船山区 + 安居区 + 蓬溪县 + 射洪县 + 大英县 + + + 8 + + 内江市 + + 市中区 + 东兴区 + 威远县 + 资中县 + 隆昌县 + + + 9 + + 乐山市 + + 市中区 + 沙湾区 + 五通桥区 + 金口河区 + 犍为县 + 井研县 + 夹江县 + 沐川县 + 峨边彝族自治县 + 马边彝族自治县 + 峨眉山市 + + + 10 + + 南充市 + + 顺庆区 + 高坪区 + 嘉陵区 + 南部县 + 营山县 + 蓬安县 + 仪陇县 + 西充县 + 阆中市 + + + 11 + + 眉山市 + + 东坡区 + 仁寿县 + 彭山县 + 洪雅县 + 丹棱县 + 青神县 + + + 12 + + 宜宾市 + + 翠屏区 + 宜宾县 + 南溪县 + 江安县 + 长宁县 + 高县 + 珙县 + 筠连县 + 兴文县 + 屏山县 + + + 13 + + 广安市 + + 广安区 + 岳池县 + 武胜县 + 邻水县 + 华蓥市 + + + 14 + + 达州市 + + 通川区 + 达县 + 宣汉县 + 开江县 + 大竹县 + 渠县 + 万源市 + + + 15 + + 雅安市 + + 雨城区 + 名山县 + 荥经县 + 汉源县 + 石棉县 + 天全县 + 芦山县 + 宝兴县 + + + 16 + + 巴中市 + + 巴州区 + 通江县 + 南江县 + 平昌县 + + + 17 + + 资阳市 + + 雁江区 + 安岳县 + 乐至县 + 简阳市 + + + 18 + + 阿坝藏族羌族自治州 + + 汶川县 + 理县 + 茂县 + 松潘县 + 九寨沟县 + 九寨沟县 + 小金县 + 黑水县 + 马尔康县 + 壤塘县 + 阿坝县 + 若尔盖县 + 红原县 + + + 19 + + 甘孜藏族自治州 + + 康定县 + 泸定县 + 丹巴县 + 九龙县 + 雅江县 + 道孚县 + 炉霍县 + 甘孜县 + 新龙县 + 德格县 + 白玉县 + 石渠县 + 色达县 + 理塘县 + 巴塘县 + 乡城县 + 稻城县 + 得荣县 + + + 20 + + 凉山彝族自治州 + + 西昌市 + 木里藏族自治县 + 盐源县 + 德昌县 + 会理县 + 会东县 + 宁南县 + 普格县 + 布拖县 + 金阳县 + 昭觉县 + 喜德县 + 冕宁县 + 越西县 + 甘洛县 + 美姑县 + 雷波县 + + + + + + 贵州省 + + 0 + + 贵阳市 + + 南明区 + 云岩区 + 花溪区 + 乌当区 + 白云区 + 小河区 + 开阳县 + 息烽县 + 修文县 + 清镇市 + + + 1 + + 六盘水市 + + 钟山区 + 六枝特区 + 水城县 + 盘县 + + + 2 + + 遵义市 + + 红花岗区 + 汇川区 + 遵义县 + 桐梓县 + 绥阳县 + 正安县 + 道真仡佬族苗族自治县 + 务川仡佬族苗族自治县 + 凤冈县 + 湄潭县 + 余庆县 + 习水县 + 赤水市 + 仁怀市 + + + 3 + + 安顺市 + + 西秀区 + 平坝县 + 普定县 + 镇宁布依族苗族自治县 + 关岭布依族苗族自治县 + 紫云苗族布依族自治县 + + + 4 + + 铜仁地区 + + 铜仁市 + 江口县 + 玉屏侗族自治县 + 石阡县 + 思南县 + 印江土家族苗族自治县 + 德江县 + 沿河土家族自治县 + 松桃苗族自治县 + 万山特区 + + + 5 + + 黔西南布依族苗族自治州 + + 兴义市 + 兴仁县 + 普安县 + 晴隆县 + 贞丰县 + 望谟县 + 册亨县 + 安龙县 + + + 6 + + 毕节地区 + + 毕节市 + 大方县 + 黔西县 + 金沙县 + 织金县 + 纳雍县 + 威宁彝族回族苗族自治县 + 赫章县 + + + 7 + + 黔东南苗族侗族自治州 + + 凯里市 + 黄平县 + 施秉县 + 三穗县 + 镇远县 + 岑巩县 + 天柱县 + 锦屏县 + 剑河县 + 台江县 + 黎平县 + 榕江县 + 从江县 + 雷山县 + 麻江县 + 丹寨县 + + + 8 + + 黔南布依族苗族自治州 + + 都匀市 + 福泉市 + 荔波县 + 贵定县 + 瓮安县 + 独山县 + 平塘县 + 罗甸县 + 长顺县 + 龙里县 + 惠水县 + 三都水族自治县 + + + + + + 云南省 + + 0 + + 昆明市 + + 五华区 + 盘龙区 + 官渡区 + 西山区 + 东川区 + 呈贡县 + 晋宁县 + 富民县 + 宜良县 + 石林彝族自治县 + 嵩明县 + 禄劝彝族苗族自治县 + 寻甸回族彝族自治县 + 安宁市 + + + 1 + + 曲靖市 + + 麒麟区 + 马龙县 + 陆良县 + 师宗县 + 罗平县 + 富源县 + 会泽县 + 沾益县 + 宣威市 + + + 2 + + 玉溪市 + + 红塔区 + 江川县 + 澄江县 + 通海县 + 华宁县 + 易门县 + 峨山彝族自治县 + 新平彝族傣族自治县 + 元江哈尼族彝族傣族自治县 + + + 3 + + 保山市 + + 隆阳区 + 施甸县 + 腾冲县 + 龙陵县 + 昌宁县 + + + 4 + + 昭通市 + + 昭阳区 + 鲁甸县 + 巧家县 + 盐津县 + 大关县 + 永善县 + 绥江县 + 镇雄县 + 彝良县 + 威信县 + 水富县 + + + 5 + + 丽江市 + + 古城区 + 玉龙纳西族自治县 + 永胜县 + 华坪县 + 宁蒗彝族自治县 + + + 6 + + 普洱市 + + 思茅区 + 宁洱哈尼族彝族自治县 + 墨江哈尼族自治县 + 景东彝族自治县 + 景谷傣族彝族自治县 + 镇沅彝族哈尼族拉祜族自治县 + 江城哈尼族彝族自治县 + 孟连傣族拉祜族佤族自治县 + 澜沧拉祜族自治县 + 西盟佤族自治县 + + + 7 + + 临沧市 + + 临翔区 + 凤庆县 + 云县 + 永德县 + 镇康县 + 双江拉祜族佤族布朗族傣族自治县 + 耿马傣族佤族自治县 + 沧源佤族自治县 + + + 8 + + 楚雄彝族自治州 + + 楚雄市 + 双柏县 + 牟定县 + 南华县 + 姚安县 + 大姚县 + 永仁县 + 元谋县 + 武定县 + 禄丰县 + + + 9 + + 红河哈尼族彝族自治州 + + 个旧市 + 开远市 + 蒙自县 + 屏边苗族自治县 + 建水县 + 石屏县 + 弥勒县 + 泸西县 + 元阳县 + 红河县 + 金平苗族瑶族傣族自治县 + 绿春县 + 河口瑶族自治县 + + + 10 + + 文山壮族苗族自治州 + + 文山县 + 砚山县 + 西畴县 + 麻栗坡县 + 马关县 + 丘北县 + 广南县 + 富宁县 + + + 11 + + 西双版纳傣族自治州 + + 景洪市 + 勐海县 + 勐腊县 + + + 12 + + 大理白族自治州 + + 大理市 + 漾濞彝族自治县 + 祥云县 + 宾川县 + 弥渡县 + 南涧彝族自治县 + 巍山彝族回族自治县 + 永平县 + 云龙县 + 洱源县 + 剑川县 + 鹤庆县 + + + 13 + + 德宏傣族景颇族自治州 + + 瑞丽市 + 潞西市 + 梁河县 + 盈江县 + 陇川县 + + + 14 + + 怒江傈僳族自治州 + + 泸水县 + 福贡县 + 贡山独龙族怒族自治县 + 兰坪白族普米族自治县 + + + 15 + + 迪庆藏族自治州 + + 香格里拉县 + 德钦县 + 维西傈僳族自治县 + + + + + + 西藏自治区 + + 0 + + 拉萨市 + + 城关区 + 林周县 + 当雄县 + 尼木县 + 曲水县 + 堆龙德庆县 + 达孜县 + 墨竹工卡县 + + + 1 + + 昌都地区 + + 昌都县 + 江达县 + 贡觉县 + 类乌齐县 + 丁青县 + 察雅县 + 八宿县 + 左贡县 + 芒康县 + 洛隆县 + 边坝县 + + + 2 + + 山南地区 + + 乃东县 + 扎囊县 + 贡嘎县 + 桑日县 + 琼结县 + 曲松县 + 措美县 + 洛扎县 + 加查县 + 隆子县 + 错那县 + 浪卡子县 + + + 3 + + 日喀则地区 + + 日喀则市 + 南木林县 + 江孜县 + 定日县 + 萨迦县 + 拉孜县 + 昂仁县 + 谢通门县 + 白朗县 + 仁布县 + 康马县 + 定结县 + 仲巴县 + 亚东县 + 吉隆县 + 聂拉木县 + 萨嘎县 + 岗巴县 + + + 4 + + 那曲地区 + + 那曲县 + 嘉黎县 + 比如县 + 聂荣县 + 安多县 + 申扎县 + 索县 + 班戈县 + 巴青县 + 尼玛县 + + + 5 + + 阿里地区 + + 普兰县 + 札达县 + 噶尔县 + 日土县 + 革吉县 + 改则县 + 措勤县 + + + 6 + + 林芝地区 + + 林芝县 + 工布江达县 + 米林县 + 墨脱县 + 波密县 + 察隅县 + 朗县 + + + + + + 陕西省 + + 0 + + 西安市 + + 新城区 + 碑林区 + 莲湖区 + 灞桥区 + 未央区 + 雁塔区 + 阎良区 + 临潼区 + 长安区 + 蓝田县 + 周至县 + 户县 + 高陵县 + + + 1 + + 铜川市 + + 王益区 + 印台区 + 耀州区 + 宜君县 + + + 2 + + 宝鸡市 + + 太白县 + 凤县 + 麟游县 + 千阳县 + 陇县 + 眉县 + 扶风县 + 岐山县 + 凤翔县 + 陈仓区 + 金台区 + 渭滨区 + + + 3 + + 咸阳市 + + 秦都区 + 杨凌区 + 渭城区 + 三原县 + 泾阳县 + 乾县 + 礼泉县 + 永寿县 + 彬县 + 长武县 + 旬邑县 + 淳化县 + 武功县 + 兴平市 + + + 4 + + 渭南市 + + 临渭区 + 华县 + 潼关县 + 大荔县 + 合阳县 + 澄城县 + 蒲城县 + 白水县 + 富平县 + 韩城市 + 华阴市 + + + 5 + + 延安市 + + 宝塔区 + 延长县 + 延川县 + 子长县 + 安塞县 + 志丹县 + 吴起县 + 甘泉县 + 富县 + 洛川县 + 宜川县 + 黄龙县 + 黄陵县 + + + 6 + + 汉中市 + + 汉台区 + 南郑县 + 城固县 + 洋县 + 西乡县 + 勉县 + 宁强县 + 略阳县 + 镇巴县 + 留坝县 + 佛坪县 + + + 7 + + 榆林市 + + 榆阳区 + 神木县 + 府谷县 + 横山县 + 靖边县 + 定边县 + 绥德县 + 米脂县 + 佳县 + 吴堡县 + 清涧县 + 子洲县 + + + 8 + + 安康市 + + 汉滨区 + 汉阴县 + 石泉县 + 宁陕县 + 紫阳县 + 岚皋县 + 平利县 + 镇坪县 + 旬阳县 + 白河县 + + + 9 + + 白河县 + + 商州区 + 洛南县 + 丹凤县 + 商南县 + 山阳县 + 镇安县 + 柞水县 + + + + + + 甘肃省 + + 0 + + 兰州市 + + 城关区 + 七里河区 + 西固区 + 安宁区 + 红古区 + 永登县 + 皋兰县 + 榆中县 + + + 1 + + 嘉峪关市 + + 嘉峪关市 + + + 2 + + 金昌市 + + 金川区 + 永昌县 + + + 3 + + 白银市 + + 白银区 + 平川区 + 靖远县 + 会宁县 + 景泰县 + + + 4 + + 天水市 + + 秦州区 + 麦积区 + 清水县 + 秦安县 + 甘谷县 + 武山县 + 张家川回族自治县 + + + 5 + + 武威市 + + 凉州区 + 民勤县 + 古浪县 + 天祝藏族自治县 + + + 6 + + 张掖市 + + 甘州区 + 肃南裕固族自治县 + 民乐县 + 临泽县 + 高台县 + 山丹县 + + + 7 + + 平凉市 + + 崆峒区 + 泾川县 + 灵台县 + 崇信县 + 华亭县 + 庄浪县 + 静宁县 + + + 8 + + 酒泉市 + + 肃州区 + 金塔县 + 瓜州县 + 肃北蒙古族自治县 + 阿克塞哈萨克族自治县 + 玉门市 + 敦煌市 + + + 9 + + 庆阳市 + + 西峰区 + 庆城县 + 环县 + 华池县 + 合水县 + 正宁县 + 宁县 + 镇原县 + + + 10 + + 定西市 + + 安定区 + 通渭县 + 陇西县 + 渭源县 + 临洮县 + 漳县 + 岷县 + + + 11 + + 陇南市 + + 武都区 + 成县 + 文县 + 宕昌县 + 康县 + 西和县 + 礼县 + 徽县 + 两当县 + + + 12 + + 临夏回族自治州 + + 临夏市 + 临夏县 + 康乐县 + 永靖县 + 广河县 + 和政县 + 东乡族自治县 + 积石山保安族东乡族撒拉族自治县 + + + 13 + + 甘南藏族自治州 + + 合作市 + 临潭县 + 卓尼县 + 舟曲县 + 迭部县 + 玛曲县 + 碌曲县 + 夏河县 + + + + + + 青海省 + + 0 + + 西宁市 + + 城东区 + 城中区 + 城西区 + 城北区 + 大通回族土族自治县 + 湟中县 + 湟源县 + + + 1 + + 海东地区 + + 平安县 + 民和回族土族自治县 + 乐都县 + 互助土族自治县 + 化隆回族自治县 + 循化撒拉族自治县 + + + 2 + + 海北藏族自治州 + + 门源回族自治县 + 祁连县 + 海晏县 + 刚察县 + + + 3 + + 黄南藏族自治州 + + 同仁县 + 尖扎县 + 泽库县 + 河南蒙古族自治县 + 海南藏族自治州 + 共和县 + 同德县 + 贵德县 + 兴海县 + 贵南县 + + + 4 + + 果洛藏族自治州 + + 玛沁县 + 班玛县 + 甘德县 + 达日县 + 久治县 + 玛多县 + + + 5 + + 玉树藏族自治州 + + 玉树县 + 杂多县 + 称多县 + 治多县 + 囊谦县 + 曲麻莱县 + + + 6 + + 海西蒙古族藏族自治州 + + 格尔木市 + 德令哈市 + 乌兰县 + 都兰县 + 天峻县 + + + + + + 宁夏回族自治区 + + 0 + + 银川市 + + 兴庆区 + 西夏区 + 金凤区 + 永宁县 + 贺兰县 + 灵武市 + + + 1 + + 石嘴山市 + + 大武口区 + 惠农区 + 平罗县 + + + 2 + + 吴忠市 + + 利通区 + 盐池县 + 同心县 + 青铜峡市 + + + 3 + + 固原市 + + 原州区 + 西吉县 + 隆德县 + 泾源县 + 彭阳县 + + + 4 + + 中卫市 + + 沙坡头区 + 中宁县 + 海原县 + + + + + + 新疆维吾尔自治区 + + 0 + + 乌鲁木齐市 + + 天山区 + 沙依巴克区 + 新市区 + 水磨沟区 + 头屯河区 + 达坂城区 + 米东区 + 乌鲁木齐县 + + + 1 + + 克拉玛依市 + + 独山子区 + 克拉玛依区 + 白碱滩区 + 乌尔禾区 + + + 2 + + 吐鲁番地区 + + 吐鲁番市 + 鄯善县 + 托克逊县 + + + 3 + + 哈密地区 + + 哈密市 + 巴里坤哈萨克自治县 + 伊吾县 + + + 4 + + 昌吉回族自治州 + + 昌吉市 + 阜康市 + 呼图壁县 + 玛纳斯县 + 奇台县 + 吉木萨尔县 + 木垒哈萨克自治县 + + + 5 + + 博尔塔拉蒙古自治州 + + 博乐市 + 精河县 + 温泉县 + + + 6 + + 巴音郭楞蒙古自治州 + + 库尔勒市 + 轮台县 + 尉犁县 + 若羌县 + 且末县 + 焉耆回族自治县 + 和静县 + 和硕县 + 博湖县 + + + 7 + + 阿克苏地区 + + 阿克苏市 + 温宿县 + 库车县 + 沙雅县 + 新和县 + 拜城县 + 乌什县 + 阿瓦提县 + 柯坪县 + + + 8 + + 克孜勒苏柯尔克孜自治州 + + 阿图什市 + 阿克陶县 + 阿合奇县 + 乌恰县 + + + 9 + + 喀什地区 + + 喀什市 + 疏附县 + 疏勒县 + 英吉沙县 + 泽普县 + 莎车县 + 叶城县 + 麦盖提县 + 岳普湖县 + 伽师县 + 巴楚县 + 塔什库尔干塔吉克自治县 + + + 10 + + 和田地区 + + 和田市 + 和田县 + 墨玉县 + 皮山县 + 洛浦县 + 策勒县 + 于田县 + 民丰县 + + + 11 + + 伊犁哈萨克自治州 + + 伊宁市 + 奎屯市 + 伊宁县 + 察布查尔锡伯自治县 + 霍城县 + 巩留县 + 新源县 + 昭苏县 + 特克斯县 + 尼勒克县 + + + 12 + + 塔城地区 + + 塔城市 + 乌苏市 + 额敏县 + 沙湾县 + 托里县 + 裕民县 + 和布克赛尔蒙古自治县 + + + 13 + + 阿勒泰地区 + + 阿勒泰市 + 布尔津县 + 富蕴县 + 福海县 + 哈巴河县 + 青河县 + 吉木乃县 + + + 14 + + 石河子市 + + 石河子市 + + + 15 + + 阿拉尔市 + + 阿拉尔市 + + + 16 + + 图木舒克市 + + 图木舒克市 + + + 17 + + 五家渠市 + + 五家渠市 + + + + + + 台湾省 + + 0 + + 台北市 + + 台北市 + + + 1 + + 高雄市 + + 高雄市 + + + 2 + + 基隆市 + + 基隆市 + + + 3 + + 新竹市 + + 新竹市 + + + 4 + + 台中市 + + 台中市 + + + 5 + + 嘉义市 + + 嘉义市 + + + 6 + + 台北县 + + 台北县 + + + 7 + + 宜兰县 + + 宜兰县 + + + 8 + + 桃园县 + + 桃园县 + + + 9 + + 新竹县 + + 新竹县 + + + 10 + + 苗栗县 + + 苗栗县 + + + 11 + + 台中县 + + 台中县 + + + 12 + + 彰化县 + + 彰化县 + + + 13 + + 南投县 + + 南投县 + + + 14 + + 云林县 + + 云林县 + + + 15 + + 嘉义县 + + 嘉义县 + + + 16 + + 台南县 + + 台南县 + + + 17 + + 高雄县 + + 高雄县 + + + 18 + + 屏东县 + + 屏东县 + + + 19 + + 台东县 + + 台东县 + + + 20 + + 花莲县 + + 花莲县 + + + 21 + + 澎湖县 + + 澎湖县 + + + + + + 香港特别行政区 + + 0 + + 香港特别行政区 + + 香港特别行政区 + + + + + + 澳门特别行政区 + + 0 + + 澳门特别行政区 + + 澳门特别行政区 + + + + + + diff --git a/CSPickerView/Assets/en.lproj/Localizable.strings b/CSPickerView/Assets/en.lproj/Localizable.strings new file mode 100644 index 0000000..85a7ba7 --- /dev/null +++ b/CSPickerView/Assets/en.lproj/Localizable.strings @@ -0,0 +1,11 @@ +/* + Localizable.strings + CSPickerView + 英文 + Created by CoderStar on 2021/6/6. +*/ + +"CSPickerView.sure" = "Sure"; +"CSPickerView.cancel" = "Cancel"; +"CSPickerView.startEndTime" = "Please Select Start And End Time"; +"CSPickerView.to" = "To"; diff --git a/CSPickerView/Assets/zh-Hans.lproj/Localizable.strings b/CSPickerView/Assets/zh-Hans.lproj/Localizable.strings new file mode 100644 index 0000000..f119664 --- /dev/null +++ b/CSPickerView/Assets/zh-Hans.lproj/Localizable.strings @@ -0,0 +1,12 @@ +/* + Localizable.strings + CSPickerView + 中文 + Created by CoderStar on 2021/6/6. + +*/ + +"CSPickerView.sure" = "确定"; +"CSPickerView.cancel" = "取消"; +"CSPickerView.startEndTime" = "请选择起止时间"; +"CSPickerView.to" = "至"; diff --git a/CSPickerView/Classes/.gitkeep b/CSPickerView/Classes/.gitkeep deleted file mode 100644 index e69de29..0000000 diff --git a/CSPickerView/Classes/DurationDatePickerView.swift b/CSPickerView/Classes/DurationDatePickerView.swift new file mode 100644 index 0000000..65b330f --- /dev/null +++ b/CSPickerView/Classes/DurationDatePickerView.swift @@ -0,0 +1,439 @@ +// +// DurationDatePickView.swift +// CSPickerView +// 起止时间选择弹出框 +// Created by CoderStar on 2021/6/6. +// + +import Foundation +import UIKit + +/// 选择器样式 +@objc +public enum DurationDatePickerViewDateType: Int { + /// 年月日 + case YMD + /// 年月日时分 + case YMDHM + + public var formatStr: String { + switch self { + case .YMD: + return "yyyy-MM-dd" + case .YMDHM: + return "yyyy-MM-dd HH:mm" + } + } +} + +/// 起止时间弹出框 +@objcMembers +open class DurationDatePickerView: UIView { + public typealias SureBlock = (_ startDate: String, _ endDate: String) -> Void + public typealias CancelBlock = () -> Void + + /// 选择日期是否可大于现在,默认true + public var canGreatNow = true + /// 选择日期是否可小于现在,默认true + public var canLessNow = true + /// 确定闭包 + public var sureBlock: SureBlock? + /// 取消闭包 + public var cancelBlock: CancelBlock? + + /// 日期类型 + private var dateType: DurationDatePickerViewDateType = .YMD + /// 最小时间 + private let minDate: Date? = nil + /// 最大时间 + private let maxDate: Date? = nil + /// 弹窗距离左右边距 + private let leftAndRightMargin: CGFloat = 35 + /// 弹窗高度 + private let popupViewHeight: CGFloat = 220 + /// 时间选择器的高度 + private let datePickerHeight: CGFloat = 200 + /// 时间选择器 + private lazy var datePicker: UIDatePicker = { + let datePicker = UIDatePicker() + datePicker.calendar = Calendar.current + datePicker.timeZone = TimeZone.current + if let language = Locale.preferredLanguages.first { + datePicker.locale = Locale(identifier: language) + } + if #available(iOS 13.4, *) { + datePicker.preferredDatePickerStyle = .wheels + } + // 背景色需要在preferredDatePickerStyle设置后设置,否则会被preferredDatePickerStyle设置冲掉样式 + datePicker.backgroundColor = PickerViewConfig.shared.mainBackgroundColor + datePicker.alpha = 0 + return datePicker + }() + + /// 屏幕高度 + private let screenHeight = UIScreen.main.bounds.height + /// 屏幕宽度 + private let screenWidth = UIScreen.main.bounds.width + + public lazy var titleLabel: UILabel = { + let titleLabel = UILabel() + titleLabel.frame = CGRect(x: 0, y: 0, width: popupView.frame.width, height: 50) + titleLabel.text = PickerViewUtils.localizedString(key: "CSPickerView.startEndTime") + titleLabel.font = UIFont.systemFont(ofSize: 16) + titleLabel.textColor = PickerViewConfig.shared.mainTextColor + titleLabel.textAlignment = .center + return titleLabel + }() + + public lazy var startBtn: UIButton = { + let btn = UIButton(type: .custom) + btn.setTitleColor(PickerViewConfig.shared.mainTextColor, for: .normal) + btn.setTitleColor(PickerViewConfig.shared.mainTextColor, for: .selected) + btn.titleLabel?.font = UIFont.systemFont(ofSize: 17) + btn.titleLabel?.textAlignment = .right + btn.addTarget(self, action: #selector(startBtnAction(btn:)), for: .touchUpInside) + + let titleString = PickerViewUtils.formatDate(date: datePicker.date, formatStr: dateType.formatStr) + btn.setTitle(titleString, for: .normal) + if dateType == .YMDHM { + let title = DurationDatePickerView.appendTime(dateAndTime: titleString) + btn.setTitle(title, for: .normal) + } + btn.isSelected = true + return btn + }() + + public lazy var endBtn: UIButton = { + let btn = UIButton(type: .custom) + btn.setTitleColor(PickerViewConfig.shared.mainTextColor, for: .normal) + btn.setTitleColor(PickerViewConfig.shared.mainTextColor, for: .selected) + btn.titleLabel?.font = UIFont.systemFont(ofSize: 17) + btn.titleLabel?.textAlignment = .left + btn.addTarget(self, action: #selector(endBtnAction(btn:)), for: .touchUpInside) + return btn + }() + + public lazy var cancelBtn: UIButton = { + let btn = UIButton(type: .custom) + btn.frame = CGRect(x: 0, y: self.popupView.frame.height - 49, width: (self.popupView.frame.width - 1) / 2.0, height: 49) + btn.setTitle(PickerViewUtils.localizedString(key: "CSPickerView.cancel"), for: .normal) + btn.setTitleColor(PickerViewConfig.shared.mainTextColor, for: .normal) + btn.titleLabel?.font = UIFont.systemFont(ofSize: 16) + btn.addTarget(self, action: #selector(cancelBtnAction), for: .touchUpInside) + return btn + }() + + public lazy var confirmBtn: UIButton = { + let btn = UIButton(type: .custom) + let x: CGFloat = self.popupView.frame.width - self.cancelBtn.frame.width - 1 + let y: CGFloat = self.popupView.frame.height - 49 + let w: CGFloat = (self.popupView.frame.width - 1) / 2.0 + let h: CGFloat = 49 + btn.frame = CGRect(x: x, y: y, width: w, height: h) + btn.setTitle(PickerViewUtils.localizedString(key: "CSPickerView.sure"), for: .normal) + btn.setTitleColor(PickerViewConfig.shared.mainTextColor, for: .normal) + btn.titleLabel?.font = UIFont.systemFont(ofSize: 16) + btn.addTarget(self, action: #selector(confirmBtnAction), for: .touchUpInside) + return btn + }() + + // MARK: 内部控件,懒加载 + + private lazy var coverView: UIView = { + let coverView = UIView() + coverView.frame = CGRect(x: 0, y: 0, width: screenWidth, height: screenHeight) + let tapGesture = UITapGestureRecognizer(target: self, action: #selector(dismiss)) + coverView.addGestureRecognizer(tapGesture) + return coverView + }() + + private lazy var popupView: UIView = { + let popupView = UIView() + let width = screenWidth - (leftAndRightMargin * 2) + let topMargin: CGFloat = (screenHeight - popupViewHeight - datePickerHeight) / 2 + popupView.frame = CGRect(x: leftAndRightMargin, y: topMargin, width: width, height: popupViewHeight) + popupView.backgroundColor = PickerViewConfig.shared.mainBackgroundColor + popupView.layer.masksToBounds = true + popupView.layer.cornerRadius = 10 + popupView.alpha = 0 + return popupView + }() + + override init(frame: CGRect) { + super.init(frame: frame) + addOrentationObserver() + UIApplication.shared.keyWindow?.addSubview(self) + self.frame = self.superview?.bounds ?? UIScreen.main.bounds + self.addSubview(coverView) + self.addSubview(datePicker) + self.addSubview(popupView) + } + + @available(*, unavailable) + required public init?(coder aDecoder: NSCoder) { + fatalError("init(coder:) has not been implemented") + } + + deinit { + NotificationCenter.default.removeObserver(self) + } + + private func addOrentationObserver() { + NotificationCenter.default.addObserver(self, selector: #selector(self.statusBarOrientationChange), name: UIApplication.didChangeStatusBarOrientationNotification, object: nil) + } + + // 屏幕旋转时移除pickerView + @objc + func statusBarOrientationChange() { + removeFromSuperview() + } + + @objc + private func dismiss() { + dismiss(completion: nil) + } +} + +// MARK: - 暴露出去的方法,供外部调用 + +extension DurationDatePickerView { + /// 展示起止时间弹出框 + /// - Parameters: + /// - startDate: 开始时间 + /// - endDate: 结束时间 + /// - dateType: 时间类型 + public class func getPopupView(startDate: Date, endDate: Date, dateType: DurationDatePickerViewDateType = .YMD) -> DurationDatePickerView { + UIApplication.shared.keyWindow?.endEditing(true) + let popupView = DurationDatePickerView(frame: UIScreen.main.bounds) + + popupView.datePicker.setDate(startDate, animated: false) + + popupView.dateType = dateType + + if dateType == .YMDHM { + let startTitle = appendTime(dateAndTime: PickerViewUtils.formatDate(date: startDate, formatStr: dateType.formatStr)) + popupView.startBtn.setTitle(startTitle, for: .normal) + + let endTitle = appendTime(dateAndTime: PickerViewUtils.formatDate(date: endDate, formatStr: dateType.formatStr)) + popupView.endBtn.setTitle(endTitle, for: .normal) + } else { + popupView.startBtn.setTitle(PickerViewUtils.formatDate(date: startDate, formatStr: dateType.formatStr), for: .normal) + popupView.endBtn.setTitle(PickerViewUtils.formatDate(date: endDate, formatStr: dateType.formatStr), for: .normal) + } + + popupView.setDatePickerStyle() + popupView.setPopupView() + popupView.startBtnAction(btn: popupView.startBtn) + return popupView + } + + /// 弹出框显示 + public func show(completion: ((Bool) -> Void)? = nil) { + UIView.animate(withDuration: PickerViewConfig.shared.animateDuration, animations: { [weak self] in + self?.coverView.backgroundColor = PickerViewConfig.shared.maskColor + self?.popupView.alpha = 1 + self?.datePicker.alpha = 1 + }, completion: { complete in + completion?(complete) + }) + } + + /// 弹出框消失 + @objc public func dismiss(completion: ((Bool) -> Void)? = nil) { + UIView.animate(withDuration: PickerViewConfig.shared.animateDuration, animations: { [weak self] in + self?.coverView.backgroundColor = .clear + self?.popupView.alpha = 0 + self?.datePicker.alpha = 0 + }, completion: { complete in + self.removeFromSuperview() + completion?(complete) + }) + } +} + +// MARK: - 事件处理 + +extension DurationDatePickerView { + @objc + private func startBtnAction(btn: UIButton) { + btn.isSelected = true + endBtn.isSelected = false + if canLessNow { + datePicker.minimumDate = minDate + } else { + datePicker.minimumDate = Date(timeIntervalSinceNow: 0) + } + if canGreatNow { + datePicker.maximumDate = maxDate + } else { + datePicker.maximumDate = Date(timeIntervalSinceNow: 0) + } + rollCurrentDate(btn: btn) + } + + @objc + private func endBtnAction(btn: UIButton) { + btn.isSelected = true + startBtn.isSelected = false + if let date = PickerViewUtils.toDate(dateStr: startBtn.currentTitle, dateTypeStr: dateType.formatStr) { + datePicker.minimumDate = date + } + if canGreatNow { + datePicker.maximumDate = maxDate + } else { + datePicker.maximumDate = Date(timeIntervalSinceNow: 0) + } + rollCurrentDate(btn: btn) + } + + @objc + private func cancelBtnAction() { + if let block = cancelBlock { + block() + } + dismiss() + } + + @objc + private func confirmBtnAction() { + if let block = sureBlock { + let startDate = startBtn.currentTitle?.replaceNewlineWithWhitespace() ?? "" + let endDate = endBtn.currentTitle?.replaceNewlineWithWhitespace() ?? "" + block(startDate, endDate) + } + dismiss() + } + + @objc + private func datePicekerValueChanged(picker: UIDatePicker) { + let date = picker.date + let titleString = PickerViewUtils.formatDate(date: date, formatStr: dateType.formatStr) + + if startBtn.isSelected { + if dateType == .YMD { + startBtn.setTitle(titleString, for: .normal) + if titleString > endBtn.currentTitle ?? "" { + guard let titleDate = PickerViewUtils.toDate(dateStr: titleString, dateTypeStr: dateType.formatStr) else { + return + } + let endDateStr = PickerViewUtils.formatDate(date: Date(timeInterval: TimeInterval(1 * 24 * 60 * 60), since: titleDate), formatStr: dateType.formatStr) + endBtn.setTitle(endDateStr, for: .normal) + } + } else if dateType == .YMDHM { + let title = DurationDatePickerView.appendTime(dateAndTime: titleString) + startBtn.setTitle(title, for: .normal) + if titleString > endBtn.currentTitle?.replaceNewlineWithWhitespace() ?? "" { + guard let titleDate = PickerViewUtils.toDate(dateStr: titleString, dateTypeStr: dateType.formatStr) else { + return + } + let tempDateStr = PickerViewUtils.formatDate(date: Date(timeInterval: TimeInterval(1 * 24 * 60 * 60), since: titleDate), formatStr: dateType.formatStr) + let endDateStr = DurationDatePickerView.appendTime(dateAndTime: tempDateStr) + endBtn.setTitle(endDateStr, for: .normal) + } + } + } else { + endBtn.setTitle(titleString, for: .normal) + if dateType == .YMDHM { + let title = DurationDatePickerView.appendTime(dateAndTime: titleString) + endBtn.setTitle(title, for: .normal) + } + } + } +} + +// MARK: - 私有方法 + +extension DurationDatePickerView { + private func rollCurrentDate(btn: UIButton) { + if let dateStr = btn.currentTitle?.replaceNewlineWithWhitespace(), let date = PickerViewUtils.toDate(dateStr: dateStr, dateTypeStr: dateType.formatStr) { + datePicker.setDate(date, animated: true) + } + } + + /// 设置日期选择器相关属性 + private func setDatePickerStyle() { + datePicker.frame = CGRect(x: 0, y: screenHeight - datePickerHeight, width: screenWidth, height: datePickerHeight) + if dateType == .YMDHM { + datePicker.datePickerMode = .dateAndTime + } else if dateType == .YMD { + datePicker.datePickerMode = .date + } + + if canLessNow { + datePicker.minimumDate = minDate + } else { + datePicker.minimumDate = Date(timeIntervalSinceNow: 0) + } + + if canGreatNow { + datePicker.maximumDate = maxDate + } else { + datePicker.maximumDate = Date(timeIntervalSinceNow: 0) + } + + datePicker.addTarget(self, action: #selector(datePicekerValueChanged(picker:)), for: .valueChanged) + } + + /// 设置popupView上的子控件 + private func setPopupView() { + // 第一部分 + popupView.addSubview(titleLabel) + let topLineView = UIView() + topLineView.frame = CGRect(x: 0, y: 50, width: popupView.frame.width, height: 1) + topLineView.backgroundColor = PickerViewConfig.shared.lineColor + popupView.addSubview(topLineView) + + // 第二部分 + popupView.addSubview(self.startBtn) + self.startBtn.frame = CGRect(x: 20, y: topLineView.frame.maxY + 20, width: (popupView.frame.width - 60) / 2.0, height: popupView.frame.height - 100 - 40) + self.startBtn.titleLabel?.lineBreakMode = .byCharWrapping + self.startBtn.titleLabel?.numberOfLines = 0 + self.startBtn.titleLabel?.textAlignment = .center + + let tempLabel = UILabel() + tempLabel.frame = CGRect(x: self.startBtn.frame.maxX, y: self.startBtn.frame.minY, width: 20, height: self.startBtn.frame.height) + tempLabel.textAlignment = .center + tempLabel.text = PickerViewUtils.localizedString(key: "CSPickerView.to") + tempLabel.font = UIFont.systemFont(ofSize: 14) + tempLabel.textColor = PickerViewConfig.shared.mainTextColor + popupView.addSubview(tempLabel) + + popupView.addSubview(self.endBtn) + self.endBtn.frame = CGRect(x: tempLabel.frame.maxX, y: self.startBtn.frame.minY, width: self.startBtn.frame.width, height: self.startBtn.frame.height) + self.endBtn.titleLabel?.lineBreakMode = .byCharWrapping + self.endBtn.titleLabel?.numberOfLines = 0 + self.endBtn.titleLabel?.textAlignment = .center + + let bottomLineView = UIView() + bottomLineView.frame = CGRect(x: 0, y: popupViewHeight - 50, width: popupView.frame.width, height: 1) + bottomLineView.backgroundColor = PickerViewConfig.shared.lineColor + popupView.addSubview(bottomLineView) + + // 第三部分 + popupView.addSubview(self.cancelBtn) + + let verticalLineView = UIView() + verticalLineView.frame = CGRect(x: self.cancelBtn.frame.width, y: self.cancelBtn.frame.minY, width: 1, height: self.cancelBtn.frame.height) + verticalLineView.backgroundColor = PickerViewConfig.shared.lineColor + popupView.addSubview(verticalLineView) + + popupView.addSubview(self.confirmBtn) + } +} + +// MARK: - 方法 + +extension DurationDatePickerView { + private static func appendTime(dateAndTime: String) -> String { + let date = String(dateAndTime.prefix(10)) + let time = String(dateAndTime[dateAndTime.index(dateAndTime.startIndex, offsetBy: 11) ..< dateAndTime.index(dateAndTime.startIndex, offsetBy: 16)]) + return date + "\n" + time + } +} + +extension String { + /// 使用空格替换字符串中的换行 + fileprivate func replaceNewlineWithWhitespace() -> String { + return self.replacingOccurrences(of: "\n", with: " ") + } +} diff --git a/CSPickerView/Classes/PickerView.swift b/CSPickerView/Classes/PickerView.swift new file mode 100755 index 0000000..7eca21b --- /dev/null +++ b/CSPickerView/Classes/PickerView.swift @@ -0,0 +1,610 @@ +// +// PickerView.swift +// CSPickerView +// 弹出框view +// Created by CoderStar on 2021/6/6. +// + +import UIKit + +// MARK: - PickerViewDelegate 用于自动设置TextField的选中值 + +@objc +public protocol PickerViewDelegate: AnyObject { + func singleColDidSelecte(_ selectedIndex: Int, selectedValue: String) + func multipleColsDidSelecte(_ selectedIndexs: [Int], selectedValues: [String]) + func dateDidSelecte(_ selectedDate: Date) +} + +// MARK: - 配置UIDatePicker的样式 + +/// 时间选择设置 +@objcMembers +public class DatePickerSetting: NSObject { + /// 默认选中时间 + public var date = Date() + /// 时间样式 + public var dateMode = UIDatePicker.Mode.date + /// 最小时间 + public var minimumDate: Date? + /// 最大时间 + public var maximumDate: Date? + /// 构造函数 + public override init() {} +} + +/// 选择器样式 +@objc +public enum PickerStyles: Int { + /// 单行 + case single + /// 多行 + case multiple + /// 多行联动 + case multipleAssociated + /// 日期 + case date +} + +/// 城市选择样式 +@objc +public enum CityPickStyle: Int { + /// 省 + case province + /// 市 + case city + /// 区 + case area +} + +// MARK: - PickerView + +@objcMembers +public class PickerView: UIView { + /// 完成按钮回调 + public typealias BtnAction = () -> Void + /// 单选完成按钮回调 + public typealias SingleDoneAction = (_ selectedIndex: Int, _ selectedValue: String) -> Void + /// 多选完成按钮回调 + public typealias MultipleDoneAction = (_ selectedIndexs: [Int], _ selectedValues: [String]) -> Void + /// 日期完成按钮回调 + public typealias DateDoneAction = (_ selectedDate: Date) -> Void + /// 多选联动完成按钮回调 + public typealias MultipleAssociatedDataType = [[[String: [String]?]]] + + /// 屏幕宽度 + private let screenWidth = UIScreen.main.bounds.size.width + /// pickerView高度 + private let pickerViewHeight = 216.0 + /// pickerView工具栏高度 + private let toolBarHeight = 44.0 + /// pickerView代理 + weak var delegate: PickerViewDelegate? + /// 工具栏标题 + private var toolBarTitle = "" { + didSet { + toolBar.title = toolBarTitle + } + } + + /// pickerView样式 + private var pickerStyle: PickerStyles = .single + /// 配置UIDatePicker的样式 + private var datePickerSetting = DatePickerSetting() { + didSet { + datePicker.date = datePickerSetting.date + datePicker.minimumDate = datePickerSetting.minimumDate + datePicker.maximumDate = datePickerSetting.maximumDate + datePicker.datePickerMode = datePickerSetting.dateMode + /// set currentDate to the default + selectedDate = datePickerSetting.date + } + } + + /// 取消按钮回调 + private var cancelAction: BtnAction? { + didSet { + toolBar.cancelAction = cancelAction + } + } + + // MARK: - 只有一列的时候用到的属性 + + private var singleDoneOnClick: SingleDoneAction? { + didSet { + toolBar.sureAction = { [unowned self] in + self.singleDoneOnClick?(self.selectedIndex, self.selectedValue) + } + } + } + + private var defalultSelectedIndex: Int? { + didSet { + // 判断下标是否合法 + if let defaultIndex = defalultSelectedIndex, let singleData = singleColData { + assert(defaultIndex >= 0 && defaultIndex < singleData.count, "设置的默认选中Index不合法") + if defaultIndex >= 0, defaultIndex < singleData.count { + selectedIndex = defaultIndex + selectedValue = singleData[defaultIndex] + pickerView.selectRow(defaultIndex, inComponent: 0, animated: false) + } + } else { + selectedIndex = 0 + selectedValue = singleColData![0] + pickerView.selectRow(0, inComponent: 0, animated: false) + } + } + } + + private var singleColData: [String]? + private var selectedIndex: Int = 0 + private var selectedValue: String = "" { + didSet { + delegate?.singleColDidSelecte(selectedIndex, selectedValue: selectedValue) + } + } + + // MARK: - 有多列不关联的时候用到的属性 + + private var multipleDoneOnClick: MultipleDoneAction? { + didSet { + toolBar.sureAction = { [unowned self] in + self.multipleDoneOnClick?(self.selectedIndexs, self.selectedValues) + } + } + } + + private var multipleColsData: [[String]]? { + didSet { + if let multipleData = multipleColsData { + for _ in multipleData.indices { + selectedIndexs.append(0) + selectedValues.append(" ") + } + } + } + } + + private var selectedIndexs: [Int] = [] + private var selectedValues: [String] = [] { + didSet { + delegate?.multipleColsDidSelecte(selectedIndexs, selectedValues: selectedValues) + } + } + + // 不关联的数据时直接设置默认的下标 + private var defalultSelectedIndexs: [Int]? { + didSet { + if let defaultIndexs = defalultSelectedIndexs, defaultIndexs.count > 0 { + defaultIndexs.enumerated().forEach { (component: Int, row: Int) in + assert(component < pickerView.numberOfComponents && row < pickerView.numberOfRows(inComponent: component), "设置的默认选中Indexs有不合法的") + if component < pickerView.numberOfComponents, row < pickerView.numberOfRows(inComponent: component) { + selectedIndexs[component] = row + selectedValues[component] = titleForRow(row, forComponent: component) ?? " " + DispatchQueue.main.async { + self.pickerView.selectRow(row, inComponent: component, animated: false) + } + } + } + } else { + multipleColsData?.indices.forEach { index in + pickerView.selectRow(0, inComponent: index, animated: false) + selectedIndexs[index] = 0 + selectedValues[index] = titleForRow(0, forComponent: index) ?? " " + } + } + } + } + + // MARK: - 有多列关联的时候用到的属性 + + private var multipleAssociatedColsData: MultipleAssociatedDataType? { + didSet { + if let multipleAssociatedData = multipleAssociatedColsData { + // 初始化选中的values + for _ in 0 ... multipleAssociatedData.count { + selectedIndexs.append(0) + selectedValues.append(" ") + } + } + } + } + + // 多列关联数据的时候设置默认的values而没有使用默认的index + private var defaultSelectedValues: [String]? { + didSet { + if let defaultValues = defaultSelectedValues, defaultValues.count > 0 { + defaultValues.enumerated().forEach { (component: Int, element: String) in + if component < multipleAssociatedColsData!.count + 1 { + var row: Int? + if component == 0 { + let firstData = multipleAssociatedColsData![0] + for (index, associatedModel) in firstData.enumerated() where associatedModel.first!.0 == element { + row = index + break + } + } else { + let associatedModels = multipleAssociatedColsData![component - 1] + var arr: [String]? + for associatedModel in associatedModels where associatedModel.first!.0 == defaultValues[component - 1] { + arr = associatedModel.first!.1 + break + } + row = arr?.firstIndex(of: element) + } + assert(row != nil, "第\(component)列设置的默认值有误") + if row == nil { + row = 0 + } + if component < pickerView.numberOfComponents { + selectedIndexs[component] = row! + selectedValues[component] = titleForRow(row!, forComponent: component) ?? " " + DispatchQueue.main.async { + self.pickerView.selectRow(row!, inComponent: component, animated: false) + } + } + } + } + if defaultValues.count < multipleAssociatedColsData!.count + 1 { + for index in defaultValues.count ... multipleAssociatedColsData!.count { + pickerView.selectRow(0, inComponent: index, animated: false) + selectedValues[index] = titleForRow(0, forComponent: index) ?? " " + selectedIndexs[index] = 0 + } + } + } else { + for index in 0 ... multipleAssociatedColsData!.count { + pickerView.selectRow(0, inComponent: index, animated: false) + selectedValues[index] = titleForRow(0, forComponent: index) ?? " " + selectedIndexs[index] = 0 + } + } + } + } + + // MARK: - 日期选择器用到的属性 + + private var selectedDate = Date() { + didSet { + delegate?.dateDidSelecte(selectedDate) + } + } + + private var dateDoneAction: DateDoneAction? { + didSet { + toolBar.sureAction = { [unowned self] in + self.dateDoneAction?(self.selectedDate) + } + } + } + + private lazy var pickerView: UIPickerView = { [unowned self] in + let picker = UIPickerView() + picker.delegate = self + picker.dataSource = self + picker.backgroundColor = PickerViewConfig.shared.mainBackgroundColor + return picker + }() + + private lazy var datePicker: UIDatePicker = { [unowned self] in + let datePic = UIDatePicker() + if #available(iOS 13.4, *) { + datePic.preferredDatePickerStyle = .wheels + } + datePic.backgroundColor = PickerViewConfig.shared.mainBackgroundColor + datePic.timeZone = TimeZone.current // 时区 + if let language = Locale.preferredLanguages.first { + datePic.locale = Locale(identifier: language) + } + datePic.calendar = Calendar.current // 显示时制,日历 + return datePic + }() + + private lazy var toolBar: ToolBarView = { + let toolBar = ToolBarView() + return toolBar + }() + + // MARK: - 初始化 + + public init(pickerStyle: PickerStyles) { + let frame = CGRect(x: 0.0, y: 0.0, width: Double(screenWidth), height: toolBarHeight + pickerViewHeight) + self.pickerStyle = pickerStyle + super.init(frame: frame) + commonInit() + } + + override init(frame: CGRect) { + super.init(frame: frame) + commonInit() + } + + required init?(coder aDecoder: NSCoder) { + super.init(coder: aDecoder) + commonInit() + } + + override public func layoutSubviews() { + super.layoutSubviews() + + let toolBarX = NSLayoutConstraint(item: toolBar, attribute: .leading, relatedBy: .equal, toItem: self, attribute: .leading, multiplier: 1.0, constant: 0.0) + + let toolBarY = NSLayoutConstraint(item: toolBar, attribute: .top, relatedBy: .equal, toItem: self, attribute: .top, multiplier: 1.0, constant: 0.0) + let toolBarW = NSLayoutConstraint(item: toolBar, attribute: .width, relatedBy: .equal, toItem: self, attribute: .width, multiplier: 1.0, constant: 0.0) + let toolBarH = NSLayoutConstraint(item: toolBar, attribute: .height, relatedBy: .equal, toItem: nil, attribute: .notAnAttribute, multiplier: 1.0, constant: CGFloat(toolBarHeight)) + toolBar.translatesAutoresizingMaskIntoConstraints = false + + addConstraints([toolBarX, toolBarY, toolBarW, toolBarH]) + + if pickerStyle == PickerStyles.date { + let pickerX = NSLayoutConstraint(item: datePicker, attribute: .leading, relatedBy: .equal, toItem: self, attribute: .leading, multiplier: 1.0, constant: 0.0) + + let pickerY = NSLayoutConstraint(item: datePicker, attribute: .top, relatedBy: .equal, toItem: self, attribute: .top, multiplier: 1.0, constant: CGFloat(toolBarHeight)) + let pickerW = NSLayoutConstraint(item: datePicker, attribute: .width, relatedBy: .equal, toItem: self, attribute: .width, multiplier: 1.0, constant: 0.0) + let pickerH = NSLayoutConstraint(item: datePicker, attribute: .height, relatedBy: .equal, toItem: nil, attribute: .notAnAttribute, multiplier: 1.0, constant: CGFloat(pickerViewHeight)) + datePicker.translatesAutoresizingMaskIntoConstraints = false + addConstraints([pickerX, pickerY, pickerW, pickerH]) + } else { + let pickerX = NSLayoutConstraint(item: pickerView, attribute: .leading, relatedBy: .equal, toItem: self, attribute: .leading, multiplier: 1.0, constant: 0.0) + + let pickerY = NSLayoutConstraint(item: pickerView, attribute: .top, relatedBy: .equal, toItem: self, attribute: .top, multiplier: 1.0, constant: CGFloat(toolBarHeight)) + let pickerW = NSLayoutConstraint(item: pickerView, attribute: .width, relatedBy: .equal, toItem: self, attribute: .width, multiplier: 1.0, constant: 0.0) + let pickerH = NSLayoutConstraint(item: pickerView, attribute: .height, relatedBy: .equal, toItem: nil, attribute: .notAnAttribute, multiplier: 1.0, constant: CGFloat(pickerViewHeight)) + pickerView.translatesAutoresizingMaskIntoConstraints = false + + addConstraints([pickerX, pickerY, pickerW, pickerH]) + } + } +} + +extension PickerView { + private func commonInit() { + addSubview(toolBar) + if pickerStyle == PickerStyles.date { + datePicker.addTarget(self, action: #selector(self.dateDidChange(_:)), for: UIControl.Event.valueChanged) + addSubview(datePicker) + } else { + addSubview(pickerView) + } + } + + @objc + private func dateDidChange(_ datePic: UIDatePicker) { + selectedDate = datePic.date + } +} + +// MARK: UIPickerViewDelegate, UIPickerViewDataSource + +extension PickerView: UIPickerViewDelegate, UIPickerViewDataSource { + final public func numberOfComponents(in pickerView: UIPickerView) -> Int { + switch pickerStyle { + case .single: + return singleColData == nil ? 0 : 1 + case .multiple: + return multipleColsData?.count ?? 0 + case .multipleAssociated: + return multipleAssociatedColsData == nil ? 0 : multipleAssociatedColsData!.count + 1 + default: return 0 + } + } + + final public func pickerView(_ pickerView: UIPickerView, numberOfRowsInComponent component: Int) -> Int { + switch pickerStyle { + case .single: + return singleColData?.count ?? 0 + case .multiple: + return multipleColsData?[component].count ?? 0 + case .multipleAssociated: + if let multipleAssociatedData = multipleAssociatedColsData { + if component == 0 { + return multipleAssociatedData.count > 0 ? multipleAssociatedData[0].count : 0 + } else { + let associatedDataModels = multipleAssociatedData[component - 1] + var arr: [String]? + for associatedDataModel in associatedDataModels where associatedDataModel.first!.0 == selectedValues[component - 1] { + arr = associatedDataModel.first!.1 + } + return arr?.count ?? 0 + } + } + return 0 + default: + return 0 + } + } + + final public func pickerView(_ pickerView: UIPickerView, didSelectRow row: Int, inComponent component: Int) { + switch pickerStyle { + case .single: + selectedIndex = row + selectedValue = singleColData![row] + case .multiple: + selectedIndexs[component] = row + if let title = titleForRow(row, forComponent: component) { + selectedValues[component] = title + } + case .multipleAssociated: + // 设置选中值 + if let title = titleForRow(row, forComponent: component) { + selectedValues[component] = title + selectedIndexs[component] = row + // 更新下一列关联的值 + if component < multipleAssociatedColsData!.count { + pickerView.reloadComponent(component + 1) + // 递归 + self.pickerView(pickerView, didSelectRow: 0, inComponent: component + 1) + pickerView.selectRow(0, inComponent: component + 1, animated: true) + } + } + default: + return + } + } + + final public func pickerView(_ pickerView: UIPickerView, viewForRow row: Int, forComponent component: Int, reusing view: UIView?) -> UIView { + let label = UILabel() + label.textAlignment = .center + label.numberOfLines = 0 + label.lineBreakMode = .byCharWrapping + label.font = UIFont.systemFont(ofSize: 21.0) + label.text = titleForRow(row, forComponent: component) + return label + } + + private func titleForRow(_ row: Int, forComponent component: Int) -> String? { + switch pickerStyle { + case .single: + return singleColData?[row] + case .multiple: + return multipleColsData?[component][row] + case .multipleAssociated: + if let multipleAssociatedData = multipleAssociatedColsData { + if component == 0 { + return multipleAssociatedData.count > 0 ? multipleAssociatedData[0][row].first!.0 : nil + } else { + let associatedDataModels = multipleAssociatedData[component - 1] + var arr: [String]? + + for associatedDataModel in associatedDataModels where associatedDataModel.first!.0 == selectedValues[component - 1] { + arr = associatedDataModel.first!.1 + } + if arr?.count == 0 { + return nil + } + return arr?[row] + } + } + return nil + default: + return nil + } + } +} + +// MARK: 快速使用方法 + +extension PickerView { + /// 单列 + /// - Parameter toolBarTitle: 工具栏标题 + /// - Parameter singleColData: 数据源 ~> [String] + /// - Parameter defaultIndex: 默认选中索引 + /// - Parameter cancelAction: 取消回调 + /// - Parameter sureAction: 完成回调 + /// - Returns: PickerView + public class func singleColPicker(_ toolBarTitle: String, singleColData: [String], defaultIndex: Int?, cancelAction: BtnAction?, sureAction: SingleDoneAction?) -> PickerView { + let pic = PickerView(pickerStyle: .single) + pic.toolBarTitle = toolBarTitle + pic.singleColData = singleColData + pic.defalultSelectedIndex = defaultIndex + pic.singleDoneOnClick = sureAction + pic.cancelAction = cancelAction + return pic + } + + /// 多列不关联 + /// - Parameter toolBarTitle: 工具栏标题 + /// - Parameter multipleColsData: 数据源 ~> [[String]] + /// - Parameter defaultSelectedIndexs: 默认选中索引 + /// - Parameter cancelAction: 取消回调 + /// - Parameter doneAction: 完成回调 + /// - Returns: PickerView + public class func multipleCosPicker(_ toolBarTitle: String, multipleColsData: [[String]], defaultSelectedIndexs: [Int]?, cancelAction: BtnAction?, doneAction: MultipleDoneAction?) -> PickerView { + let pic = PickerView(pickerStyle: .multiple) + pic.toolBarTitle = toolBarTitle + pic.multipleColsData = multipleColsData + pic.defalultSelectedIndexs = defaultSelectedIndexs + pic.cancelAction = cancelAction + pic.multipleDoneOnClick = doneAction + return pic + } + + /// 多列关联 + /// - Parameter toolBarTitle: 工具栏标题 + /// - Parameter multipleAssociatedColsData: 数据源 ~> [[[String: [String]?]]] + /// - Parameter defaultSelectedValues: 默认选中值 ~> [String]? + /// - Parameter cancelAction: 取消回调 + /// - Parameter doneAction: 完成回调 + /// - Returns: PickerView + public class func multipleAssociatedCosPicker(_ toolBarTitle: String, multipleAssociatedColsData: MultipleAssociatedDataType, defaultSelectedValues: [String]?, cancelAction: BtnAction?, doneAction: MultipleDoneAction?) -> PickerView { + let pic = PickerView(pickerStyle: .multipleAssociated) + pic.toolBarTitle = toolBarTitle + pic.multipleAssociatedColsData = multipleAssociatedColsData + pic.defaultSelectedValues = defaultSelectedValues + pic.cancelAction = cancelAction + pic.multipleDoneOnClick = doneAction + return pic + } + + /// 城市选择器 + /// - Parameter toolBarTitle: 工具栏标题 + /// - Parameter defaultSelectedValues: 默认选中值 + /// - Parameter cancelAction: 取消回调 + /// - Parameter doneAction: 完成回调 + /// - Parameter type: 显示样式类型 + /// - Returns: PickerView + public class func citiesPicker(_ toolBarTitle: String, type: CityPickStyle, defaultSelectedValues: [String]?, cancelAction: BtnAction?, doneAction: MultipleDoneAction?) -> PickerView { + var pickerView = PickerView.multipleAssociatedCosPicker(toolBarTitle, multipleAssociatedColsData: [[[String: [String]?]]](), defaultSelectedValues: nil, cancelAction: cancelAction, doneAction: doneAction) + guard let path = PickerViewUtils.addressPlistPath else { + assertionFailure("地址资源加载失败") + return pickerView + } + + guard let info = NSArray(contentsOfFile: path) as? [[String: [String: [String: [String]]]]] else { + return pickerView + } + + var provincesArr = [String]() + var provincesAndCitiesArr = [[String: [String]?]]() + var citiesAndAreasArr = [[String: [String]?]]() + for value in info { + for (provinceKey, provinceValue) in value { + let sortProvince = provinceValue.sorted { $0.key < $1.key }.compactMap { $0.value } + var arr = [String]() + for areaValue in sortProvince { + citiesAndAreasArr.append(areaValue) + arr.append(Array(areaValue.keys)[0]) + } + provincesAndCitiesArr.append([provinceKey: arr]) + provincesArr.append(provinceKey) + } + } + var defaultSelectedValueArr: [String]? + if let selectedValues = defaultSelectedValues { + defaultSelectedValueArr = selectedValues + } + switch type { + case .province: + var defaultIndex: Int? + if let tempDefaultSelectedValues = defaultSelectedValues { + if tempDefaultSelectedValues.count > 0 { + defaultIndex = provincesArr.firstIndex(of: tempDefaultSelectedValues[0]) + } + } + pickerView = PickerView.singleColPicker(toolBarTitle, singleColData: provincesArr, defaultIndex: defaultIndex, cancelAction: cancelAction) { index, value in + doneAction?([index], [value]) + } + case .city: + pickerView = PickerView.multipleAssociatedCosPicker(toolBarTitle, multipleAssociatedColsData: [provincesAndCitiesArr], defaultSelectedValues: defaultSelectedValueArr, cancelAction: cancelAction, doneAction: doneAction) + case .area: + let provincesAndCitiesAndAreasArr = [provincesAndCitiesArr, citiesAndAreasArr] + pickerView = PickerView.multipleAssociatedCosPicker(toolBarTitle, multipleAssociatedColsData: provincesAndCitiesAndAreasArr, defaultSelectedValues: defaultSelectedValueArr, cancelAction: cancelAction, doneAction: doneAction) + } + return pickerView + } + + /// 时间选择器 + /// - Parameter toolBarTitle: 工具栏标题 + /// - Parameter datePickerSetting: date配置 + /// - Parameter cancelAction: 取消回调 + /// - Parameter doneAction: 完成回调 + /// - Returns: PickerView + public class func datePicker(_ toolBarTitle: String, datePickerSetting: DatePickerSetting, cancelAction: BtnAction?, doneAction: DateDoneAction?) -> PickerView { + let pic = PickerView(pickerStyle: .date) + pic.datePickerSetting = datePickerSetting + pic.toolBarTitle = toolBarTitle + pic.cancelAction = cancelAction + pic.dateDoneAction = doneAction + return pic + } +} diff --git a/CSPickerView/Classes/PickerViewConfig.swift b/CSPickerView/Classes/PickerViewConfig.swift new file mode 100644 index 0000000..f5d4256 --- /dev/null +++ b/CSPickerView/Classes/PickerViewConfig.swift @@ -0,0 +1,105 @@ +// +// PickerViewConfig.swift +// CSPickerView +// +// Created by CoderStar on 2021/6/6. +// + +import Foundation +import UIKit + +@objcMembers +public class PickerViewConfig: NSObject { + private override init() {} + + public static let shared = PickerViewConfig() + + /// 主背景色 + public var mainBackgroundColor: UIColor = { + if #available(iOS 13.0, *) { + return UIColor { traitCollection in + if traitCollection.userInterfaceStyle == .dark { + return UIColor(red: 18 / 255, green: 18 / 255, blue: 18 / 255, alpha: 1) + } else { + return .white + } + } + } else { + return .white + } + }() + + /// 蒙版颜色 + public var maskColor: UIColor = { + if #available(iOS 13.0, *) { + return UIColor { traitCollection in + if traitCollection.userInterfaceStyle == .dark { + return UIColor.black.withAlphaComponent(0.45) + } else { + return UIColor.black.withAlphaComponent(0.2) + } + } + } else { + return UIColor.black.withAlphaComponent(0.2) + } + }() + + /// 主文字颜色 + public var mainTextColor = PickerViewConfig.blackWhiteColor + /// 左边按钮颜色 + public var leftButtonColor = PickerViewConfig.blackWhiteColor + /// 右边按钮颜色 + public var rightButtonColor = PickerViewConfig.blackWhiteColor + /// 中间标题颜色 + public var centerLabelColor = PickerViewConfig.blackWhiteColor + /// 分割线颜色 + public var lineColor: UIColor = { + if #available(iOS 13.0, *) { + return UIColor { traitCollection in + if traitCollection.userInterfaceStyle == .dark { + return UIColor(red: 42 / 255, green: 42 / 255, blue: 45 / 255, alpha: 1) + } else { + return UIColor(red: 242 / 255, green: 242 / 255, blue: 242 / 255, alpha: 1) + } + } + } else { + return UIColor(red: 242 / 255, green: 242 / 255, blue: 242 / 255, alpha: 1) + } + }() + + /// 强制使用某语言的编码 + public var languageCode: String? + + /// 动画时长 + public var animateDuration: TimeInterval = 0.2 +} + +extension PickerViewConfig { + static var whiteBlackColor: UIColor { + if #available(iOS 13.0, *) { + return UIColor { traitCollection in + if traitCollection.userInterfaceStyle == .dark { + return .black + } else { + return .white + } + } + } else { + return .white + } + } + + static var blackWhiteColor: UIColor { + if #available(iOS 13.0, *) { + return UIColor { traitCollection in + if traitCollection.userInterfaceStyle == .dark { + return .white + } else { + return .black + } + } + } else { + return .black + } + } +} diff --git a/CSPickerView/Classes/PickerViewManager.swift b/CSPickerView/Classes/PickerViewManager.swift new file mode 100755 index 0000000..311fcf5 --- /dev/null +++ b/CSPickerView/Classes/PickerViewManager.swift @@ -0,0 +1,279 @@ +// +// PickerViewManager.swift +// CSPickerView +// 弹出框控制 +// Created by CoderStar on 2021/6/6. +// + +import UIKit + +@objcMembers +public class PickerViewManager: UIView { + public typealias BtnAction = () -> Void + public typealias SingleDoneAction = (_ selectedIndex: Int, _ selectedValue: String) -> Void + public typealias MultipleDoneAction = (_ selectedIndexs: [Int], _ selectedValues: [String]) -> Void + public typealias DateDoneAction = (_ selectedDate: Date) -> Void + public typealias MultipleAssociatedDataType = [[[String: [String]?]]] + + private var pickerView: PickerView! + + // MARK: - 常量 + + private let pickerViewHeight: CGFloat = 260.0 + private let screenWidth = UIScreen.main.bounds.size.width + private let screenHeight = UIScreen.main.bounds.size.height + private var hideFrame: CGRect { + return CGRect(x: 0.0, y: screenHeight, width: screenWidth, height: pickerViewHeight) + } + + private var showFrame: CGRect { + return CGRect(x: 0.0, y: screenHeight - pickerViewHeight, width: screenWidth, height: pickerViewHeight) + } + + // MARK: - 初始化 + + // 单列 + convenience init(frame: CGRect, toolBarTitle: String, singleColData: [String], defaultSelectedIndex: Int?, cancelAction: BtnAction?, sureAction: SingleDoneAction?) { + self.init(frame: frame) + pickerView = PickerView.singleColPicker(toolBarTitle, singleColData: singleColData, defaultIndex: defaultSelectedIndex, cancelAction: { [unowned self] in + cancelAction?() + self.dimiss() + }, sureAction: { [unowned self] selectedIndex, selectedValue in + sureAction?(selectedIndex, selectedValue) + self.dimiss() + }) + pickerView.frame = hideFrame + addSubview(pickerView) + let tap = UITapGestureRecognizer(target: self, action: #selector(self.tapAction(_:))) + addGestureRecognizer(tap) + } + + // 多列不关联 + convenience init(frame: CGRect, toolBarTitle: String, multipleColsData: [[String]], defaultSelectedIndexs: [Int]?, cancelAction: BtnAction?, sureAction: MultipleDoneAction?) { + self.init(frame: frame) + pickerView = PickerView.multipleCosPicker(toolBarTitle, multipleColsData: multipleColsData, defaultSelectedIndexs: defaultSelectedIndexs, cancelAction: { [unowned self] in + cancelAction?() + self.dimiss() + }, doneAction: { [unowned self] selectedIndexs, selectedValues in + sureAction?(selectedIndexs, selectedValues) + self.dimiss() + }) + pickerView.frame = hideFrame + addSubview(pickerView) + let tap = UITapGestureRecognizer(target: self, action: #selector(self.tapAction(_:))) + addGestureRecognizer(tap) + } + + // 多列关联 + convenience init(frame: CGRect, toolBarTitle: String, multipleAssociatedColsData: MultipleAssociatedDataType, defaultSelectedValues: [String]?, cancelAction: BtnAction?, sureAction: MultipleDoneAction?) { + self.init(frame: frame) + pickerView = PickerView.multipleAssociatedCosPicker(toolBarTitle, multipleAssociatedColsData: multipleAssociatedColsData, defaultSelectedValues: defaultSelectedValues, cancelAction: { [unowned self] in + cancelAction?() + self.dimiss() + }, doneAction: { [unowned self] selectedIndexs, selectedValues in + sureAction?(selectedIndexs, selectedValues) + self.dimiss() + }) + pickerView.frame = hideFrame + addSubview(pickerView) + let tap = UITapGestureRecognizer(target: self, action: #selector(self.tapAction(_:))) + addGestureRecognizer(tap) + } + + // 城市选择器 + convenience init(frame: CGRect, toolBarTitle: String, type: CityPickStyle, defaultSelectedValues: [String]?, cancelAction: BtnAction?, sureAction: MultipleDoneAction?) { + self.init(frame: frame) + pickerView = PickerView.citiesPicker(toolBarTitle, type: type, defaultSelectedValues: defaultSelectedValues, cancelAction: { [unowned self] in + cancelAction?() + self.dimiss() + }, doneAction: { [unowned self] selectedIndexs, selectedValues in + sureAction?(selectedIndexs, selectedValues) + self.dimiss() + }) + pickerView.frame = hideFrame + addSubview(pickerView) + let tap = UITapGestureRecognizer(target: self, action: #selector(self.tapAction(_:))) + addGestureRecognizer(tap) + } + + // 日期选择器 + convenience init(frame: CGRect, toolBarTitle: String, datePickerSetting: DatePickerSetting, cancelAction: BtnAction?, sureAction: DateDoneAction?) { + self.init(frame: frame) + pickerView = PickerView.datePicker(toolBarTitle, datePickerSetting: datePickerSetting, cancelAction: { [unowned self] in + cancelAction?() + self.dimiss() + }, doneAction: { [unowned self] selectedDate in + sureAction?(selectedDate) + self.dimiss() + }) + pickerView.frame = hideFrame + addSubview(pickerView) + let tap = UITapGestureRecognizer(target: self, action: #selector(self.tapAction(_:))) + addGestureRecognizer(tap) + } + + override init(frame: CGRect) { + super.init(frame: frame) + addOrentationObserver() + } + + @available(*, unavailable) + required public init?(coder aDecoder: NSCoder) { + fatalError("init(coder:) has not been implemented") + } + + deinit { + NotificationCenter.default.removeObserver(self) + } +} + +// MARK: - selector + +extension PickerViewManager { + private func addOrentationObserver() { + NotificationCenter.default.addObserver(self, selector: #selector(self.statusBarOrientationChange), name: UIApplication.didChangeStatusBarOrientationNotification, object: nil) + } + + // 屏幕旋转时移除pickerView + @objc + func statusBarOrientationChange() { + removeFromSuperview() + } + + @objc + func tapAction(_ tap: UITapGestureRecognizer) { + let location = tap.location(in: self) + if location.y <= screenHeight - pickerViewHeight { + self.dimiss() + } + } +} + +// MARK: - 弹出和移除self + +extension PickerViewManager { + /// 通过window 弹出view + private func show(completion: ((Bool) -> Void)? = nil) { + let window = UIApplication.shared.keyWindow + guard let currentWindow = window else { return } + currentWindow.addSubview(self) + UIView.animate(withDuration: PickerViewConfig.shared.animateDuration, animations: { [weak self] in + guard let self = self else { return } + self.backgroundColor = PickerViewConfig.shared.maskColor + self.pickerView.frame = self.showFrame + }, completion: { complete in + completion?(complete) + }) + } + + /// 把self从window中移除 + public func dimiss(completion: ((Bool) -> Void)? = nil) { + UIView.animate(withDuration: PickerViewConfig.shared.animateDuration, animations: { [weak self] in + guard let self = self else { return } + self.backgroundColor = UIColor.clear + self.pickerView.frame = self.hideFrame + }, completion: { [weak self] complete in + self?.removeFromSuperview() + completion?(complete) + }) + } +} + +// MARK: - 快速使用方法 + +extension PickerViewManager { + /// 单列选择器 + /// - parameter title: 标题 + /// - parameter data: 数据;数据为空时,会弹出提示框提示数据为空 + /// - parameter defaultSeletedIndex: 默认选中的行数;传入当默认索引不在合理范围内,会默认显示第一个 + /// - Parameter cancelAction: 取消回调 + /// - Parameter sureAction: 确定回调 + public class func showSingleColPicker(_ toolBarTitle: String, + data: [String], + defaultSelectedIndex: Int?, + cancelAction: BtnAction?, + sureAction: SingleDoneAction?) { + if data.isEmpty { + assertionFailure("data is empty") + return + } + guard let currentWindow = UIApplication.shared.keyWindow else { return } + currentWindow.endEditing(true) + let pickViewManager = PickerViewManager(frame: currentWindow.bounds, toolBarTitle: toolBarTitle, singleColData: data, defaultSelectedIndex: defaultSelectedIndex, cancelAction: cancelAction, sureAction: sureAction) + pickViewManager.show() + } + + /// 多列不关联选择器 + /// - Parameter toolBarTitle: 标题 + /// - Parameter data: 数据;为空时,会弹出提示框提示数据为空 + /// - Parameter defaultSelectedIndexs: 默认选中的每一列的行数;当默认索引不在合理范围内,会默认显示第一个,默认索引数组数量不做限制,已兼容 + /// - Parameter cancelAction: 取消回调 + /// - Parameter sureAction: 确定回调 + public class func showMultipleColsPicker(_ toolBarTitle: String, + data: [[String]], + defaultSelectedIndexs: [Int]?, + cancelAction: BtnAction?, + sureAction: MultipleDoneAction?) { + if data.isEmpty { + assertionFailure("data is empty") + return + } + guard let currentWindow = UIApplication.shared.keyWindow else { return } + currentWindow.endEditing(true) + let pickViewManager = PickerViewManager(frame: currentWindow.bounds, toolBarTitle: toolBarTitle, multipleColsData: data, defaultSelectedIndexs: defaultSelectedIndexs, cancelAction: cancelAction, sureAction: sureAction) + pickViewManager.show() + } + + /// 多列关联选择器 + /// - Parameter toolBarTitle: 标题 + /// - Parameter data: 数据;为空时,会弹出提示框提示数据为空 + /// - Parameter defaultSelectedValues: 默认选中的每一列的数值;当默认值不存在时,会默认显示第一个,默认数据数组数量不做限制,已兼容 + /// - Parameter cancelAction: 取消回调 + /// - Parameter sureAction: 确定回调 + public class func showMultipleAssociatedColsPicker(_ toolBarTitle: String, + data: MultipleAssociatedDataType, + defaultSelectedValues: [String]?, + cancelAction: BtnAction?, + sureAction: MultipleDoneAction?) { + if data.isEmpty { + assertionFailure("data is empty") + return + } + guard let currentWindow = UIApplication.shared.keyWindow else { return } + currentWindow.endEditing(true) + let pickViewManager = PickerViewManager(frame: currentWindow.bounds, toolBarTitle: toolBarTitle, multipleAssociatedColsData: data, defaultSelectedValues: defaultSelectedValues, cancelAction: cancelAction, sureAction: sureAction) + pickViewManager.show() + } + + /// 城市选择器 + /// - Parameter toolBarTitle: 标题 + /// - Parameter type: 显示样式类型 + /// - Parameter defaultSelectedValues: 默认选中的每一列的值, 注意不是行数;当默认值不存在时,会默认显示第一个,默认数据数组数量不做限制,已兼容 + /// - Parameter cancelAction: 取消回调 + /// - Parameter sureAction: 确定回调 + public class func showCitiesPicker(_ toolBarTitle: String, + type: CityPickStyle = .province, + defaultSelectedValues: [String]?, + cancelAction: BtnAction?, + sureAction: MultipleDoneAction?) { + guard let currentWindow = UIApplication.shared.keyWindow else { return } + currentWindow.endEditing(true) + let pickViewManager = PickerViewManager(frame: currentWindow.bounds, toolBarTitle: toolBarTitle, type: type, defaultSelectedValues: defaultSelectedValues, cancelAction: cancelAction, sureAction: sureAction) + pickViewManager.show() + } + + /// 日期选择器 + /// - Parameter toolBarTitle: 标题 + /// - Parameter datePickerSetting: 可配置UIDatePicker的样式 + /// - Parameter cancelAction: 取消回调 + /// - Parameter sureAction: 确定回调 + public class func showDatePicker(_ toolBarTitle: String, + datePickerSetting: DatePickerSetting = DatePickerSetting(), + cancelAction: BtnAction?, + sureAction: DateDoneAction?) { + guard let currentWindow = UIApplication.shared.keyWindow else { return } + currentWindow.endEditing(true) + let pickViewManager = PickerViewManager(frame: currentWindow.bounds, toolBarTitle: toolBarTitle, datePickerSetting: datePickerSetting, cancelAction: cancelAction, sureAction: sureAction) + pickViewManager.show() + } +} diff --git a/CSPickerView/Classes/PickerViewUtils.swift b/CSPickerView/Classes/PickerViewUtils.swift new file mode 100644 index 0000000..00a530c --- /dev/null +++ b/CSPickerView/Classes/PickerViewUtils.swift @@ -0,0 +1,70 @@ +// +// PickerViewUtils.swift +// CSPickerView +// 资源管理类 +// Created by CoderStar on 2021/6/6. +// + +import Foundation +import UIKit + +// MARK: - 资源相关 + +@objcMembers +public class PickerViewUtils: NSObject { + public static var resoureBundle: Bundle? { + if let path = Bundle(for: PickerViewUtils.self).path(forResource: "CSPickerView", ofType: "bundle") { + return Bundle(path: path) + } + return nil + } + + public static var addressPlistPath: String? { + return resoureBundle?.path(forResource: "Address", ofType: "plist") + } + + public static func localizedString(key: String, defaultValue: String? = nil) -> String? { + var language = PickerViewConfig.shared.languageCode + if language == nil { + language = Locale.preferredLanguages.first + } + if language?.hasPrefix("zh-Hans") == true { + language = "zh-Hans" + } else { + language = "en" + } + guard let bundle = resoureBundle else { + assertionFailure("Bunle加载失败") + return nil + } + guard let localizedStringPath = bundle.path(forResource: language, ofType: "lproj"), let localizedStringBundle = Bundle(path: localizedStringPath) else { + assertionFailure("语言包加载失败") + return nil + } + return Bundle.main.localizedString(forKey: key, value: localizedStringBundle.localizedString(forKey: key, value: defaultValue, table: nil), table: nil) + } +} + +// MARK: - 日期工具 + +extension PickerViewUtils { + public static func formatDate(date: Date, formatStr: String) -> String { + let dateFormatter = DateFormatter() + dateFormatter.calendar = Calendar.current + dateFormatter.timeZone = TimeZone.current + dateFormatter.dateFormat = formatStr + let dateString = dateFormatter.string(from: date) + return dateString + } + + public static func toDate(dateStr: String?, dateTypeStr: String) -> Date? { + guard let selfLowercased = dateStr?.trimmingCharacters(in: .whitespacesAndNewlines).lowercased().replacingOccurrences(of: "T", with: " ") else { + return nil + } + let formatter = DateFormatter() + formatter.timeZone = TimeZone.current + formatter.calendar = Calendar.current + formatter.dateFormat = dateTypeStr + return formatter.date(from: selfLowercased) + } +} diff --git a/CSPickerView/Classes/ReplaceMe.swift b/CSPickerView/Classes/ReplaceMe.swift deleted file mode 100644 index e69de29..0000000 diff --git a/CSPickerView/Classes/SelectPickerView.swift b/CSPickerView/Classes/SelectPickerView.swift new file mode 100644 index 0000000..5b1c78c --- /dev/null +++ b/CSPickerView/Classes/SelectPickerView.swift @@ -0,0 +1,363 @@ +// +// SelectPickerView.swift +// CSPickerView +// 选择器(单、多选) +// Created by CoderStar on 2021/6/6. +// + +import Foundation +import UIKit + +// MARK: - 属性 + +@objcMembers +public class SelectPickerView: UIView { + /// 数据 + public var titleArr = [String]() { + didSet { + tableView.reloadData() + } + } + + /// 清空按钮闭包 + public var cancelAction: PickerViewManager.BtnAction? + /// 确定按钮闭包,多选 + public var sureAction: PickerViewManager.MultipleDoneAction? + /// 确定按钮闭包,单选 + public var singleSureAction: PickerViewManager.SingleDoneAction? + + /// 选中的索引数组,多选 + private var selectIndexArr = [Int]() + /// 选中的索引,单选 + private var selectIndex: Int? + /// toobar高度 + private let toolBarHeight: CGFloat = 44 + /// tableview高度 + private let tableViewHeight: CGFloat = 216 + /// 总高度 + private var pickHeight: CGFloat { + return toolBarHeight + tableViewHeight + } + + /// 是否单项选择 + private var isSingle = false + + /// 屏幕高度 + private let screenHeight = UIScreen.main.bounds.height + /// 屏幕宽度 + private let screenWidth = UIScreen.main.bounds.width + /// 隐藏时frame + private var hideFrame: CGRect { + return CGRect(x: 0.0, y: screenHeight, width: screenWidth, height: pickHeight) + } + + /// 显示时frame + private var showFrame: CGRect { + return CGRect(x: 0.0, y: screenHeight - pickHeight, width: screenWidth, height: pickHeight) + } + + // MARK: - 私有控件 + + private lazy var coverView: UIView = { + let coverView = UIView() + coverView.frame = CGRect(x: 0, y: 0, width: screenWidth, height: screenHeight) + let tapGesture = UITapGestureRecognizer(target: self, action: #selector(dismiss)) + coverView.addGestureRecognizer(tapGesture) + return coverView + }() + + private lazy var pickView: UIView = { + let pickView = UIView() + pickView.frame = hideFrame + return pickView + }() + + private lazy var tableView: UITableView = { + let tableView = UITableView() + tableView.dataSource = self + tableView.separatorColor = PickerViewConfig.shared.lineColor + tableView.delegate = self + tableView.estimatedRowHeight = 35 + tableView.tableHeaderView = UIView() + tableView.tableFooterView = UIView() + return tableView + }() + + private lazy var toolBarView: ToolBarView = { + let toolBarView = ToolBarView() + return toolBarView + }() + + override init(frame: CGRect) { + super.init(frame: frame) + setupView() + } + + required init?(coder: NSCoder) { + super.init(coder: coder) + setupView() + } + + private func setupView() { + UIApplication.shared.keyWindow?.addSubview(self) + addOrentationObserver() + self.frame = self.superview?.bounds ?? UIScreen.main.bounds + self.addSubview(coverView) + self.addSubview(pickView) + pickView.addSubview(toolBarView) + pickView.addSubview(tableView) + + toolBarView.cancelAction = { [weak self] in + self?.cancelAction?() + self?.dismiss() + } + toolBarView.sureAction = { [weak self] in + guard let self = self else { return } + if self.isSingle { + if let tempIndex = self.selectIndex { + self.singleSureAction?(tempIndex, self.titleArr[tempIndex]) + self.dismiss() + } else { + self.singleSureAction?(-1, "") + self.dismiss() + } + } else { + if self.selectIndexArr.isEmpty { + self.sureAction?([], []) + self.dismiss() + } else { + let indexArr = self.selectIndexArr.sorted() + var valueArr = [String]() + for item in indexArr { + valueArr.append(self.titleArr[item]) + } + self.sureAction?(indexArr, valueArr) + self.dismiss() + } + } + } + } + + override public func layoutSubviews() { + super.layoutSubviews() + toolBarView.frame = CGRect(x: 0, y: 0, width: screenWidth, height: toolBarHeight) + tableView.frame = CGRect(x: 0, y: toolBarHeight, width: screenWidth, height: tableViewHeight) + } + + + private func addOrentationObserver() { + NotificationCenter.default.addObserver(self, selector: #selector(self.statusBarOrientationChange), name: UIApplication.didChangeStatusBarOrientationNotification, object: nil) + } + + // 屏幕旋转时移除pickerView + @objc + func statusBarOrientationChange() { + removeFromSuperview() + } + + @objc + private func dismiss() { + dismiss(completion: nil) + } +} + +// MARK: - 对外暴露方法 + +extension SelectPickerView { + /// 展示多选view + /// - Parameters: + /// - title: 标题 + /// - data: 数据 + /// - defaultSelectedIndex: 默认选中索引 + /// - cancelAction: 取消回调 + /// - sureAction: 确定回调 + public class func showView(title: String, + data: [String], + defaultSelectedIndexs: [Int]?, + cancelAction: @escaping PickerViewManager.BtnAction, + sureAction: @escaping PickerViewManager.MultipleDoneAction) { + guard let view = getView(title: title, data: data, defaultSelectedIndexs: defaultSelectedIndexs) else { + return + } + view.cancelAction = cancelAction + view.sureAction = sureAction + view.show() + } + + /// 获取多选view + /// - Parameters: + /// - title: 标题 + /// - data: 数据 + /// - defaultSelectedIndexs: 默认选中索引,如果为nil,表示都不选中 + /// - Returns: SelectPickerView + public class func getView(title: String, data: [String], defaultSelectedIndexs: [Int]?) -> SelectPickerView? { + if data.isEmpty { + return nil + } + UIApplication.shared.keyWindow?.endEditing(true) + let view = SelectPickerView() + view.titleArr = data + if let indexArr = defaultSelectedIndexs { + for item in indexArr where item >= 0 && item < data.count { + view.selectIndexArr.append(item) + } + } + view.toolBarView.title = title + return view + } + + /// 展示单选view + /// - Parameters: + /// - title: 标题 + /// - data: 数据 + /// - defaultSelectedIndex: 默认选中索引 + /// - cancelAction: 取消回调 + /// - sureAction: 确定回调 + public class func showSingleView(title: String, + data: [String], + defaultSelectedIndex: Int?, + cancelAction: @escaping PickerViewManager.BtnAction, + sureAction: @escaping PickerViewManager.SingleDoneAction) { + guard let view = getSingleView(title: title, data: data, defaultSelectedIndex: defaultSelectedIndex) else { + return + } + view.cancelAction = cancelAction + view.singleSureAction = sureAction + view.show() + } + + /// 获取单选view + /// - Parameters: + /// - title: 标题 + /// - data: 数据 + /// - defaultSelectedIndexs: 默认选中索引,如果为nil,表示都不选中 + public class func getSingleView(title: String, data: [String], defaultSelectedIndex: Int?) -> SelectPickerView? { + if data.isEmpty { + return nil + } + UIApplication.shared.keyWindow?.endEditing(true) + let view = SelectPickerView() + view.titleArr = data + if let index = defaultSelectedIndex, index >= 0, index < data.count { + view.selectIndex = index + } + view.isSingle = true + view.toolBarView.title = title + return view + } + + /// 弹出框显示 + public func show(completion: ((Bool) -> Void)? = nil) { + UIView.animate(withDuration: PickerViewConfig.shared.animateDuration, animations: { [weak self] in + guard let self = self else { return } + self.pickView.frame = self.showFrame + self.coverView.backgroundColor = PickerViewConfig.shared.maskColor + }, completion: { complete in + completion?(complete) + }) + } + + /// 弹出框消失 + @objc + public func dismiss(completion: ((Bool) -> Void)? = nil) { + UIView.animate(withDuration: PickerViewConfig.shared.animateDuration, animations: { [unowned self] in + self.pickView.frame = self.hideFrame + self.coverView.backgroundColor = .clear + }, completion: { complete in + self.removeFromSuperview() + completion?(complete) + }) + } +} + +// MARK: - UITableView相关代理 + +extension SelectPickerView: UITableViewDataSource { + public func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int { + return titleArr.count + } + + public func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell { + var cell = tableView.dequeueReusableCell(withIdentifier: SelectPickerViewTableCell.description()) as? SelectPickerViewTableCell + if cell == nil { + cell = SelectPickerViewTableCell(style: .default, reuseIdentifier: SelectPickerViewTableCell.description()) + } + cell?.titleLabel.text = titleArr[indexPath.row] + if isSingle { + if selectIndex == indexPath.row { + cell?.accessoryType = .checkmark + } else { + cell?.accessoryType = .none + } + } else { + if selectIndexArr.contains(indexPath.row) { + cell?.accessoryType = .checkmark + } else { + cell?.accessoryType = .none + } + } + return cell! + } +} + +extension SelectPickerView: UITableViewDelegate { + public func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) { + if isSingle { + selectIndex = indexPath.row + } else { + if let index = selectIndexArr.firstIndex(of: indexPath.row) { + selectIndexArr.remove(at: index) + } else { + selectIndexArr.append(indexPath.row) + } + } + tableView.reloadData() + } + + public func tableView(_ tableView: UITableView, willDisplay cell: UITableViewCell, forRowAt indexPath: IndexPath) { + if indexPath.row == titleArr.count - 1 { + tableView.layoutIfNeeded() + /// 为tableView加上header,使内容垂直居中 + let margin = tableViewHeight - tableView.contentSize.height + if margin > 0 { + let headerView = UIView(frame: CGRect(x: 0, y: 0, width: screenWidth, height: margin / 2)) + let lineView = UIView(frame: CGRect(x: 0, y: headerView.frame.height - 0.05, width: screenWidth, height: 0.05)) + lineView.backgroundColor = PickerViewConfig.shared.lineColor + headerView.addSubview(lineView) + tableView.tableHeaderView = headerView + } + } + } +} + +class SelectPickerViewTableCell: UITableViewCell { + lazy var titleLabel: UILabel = { + let titleLabel = UILabel() + titleLabel.numberOfLines = 0 + titleLabel.lineBreakMode = .byCharWrapping + return titleLabel + }() + + override init(style: UITableViewCell.CellStyle, reuseIdentifier: String?) { + super.init(style: style, reuseIdentifier: reuseIdentifier) + setupView() + } + + private func setupView() { + backgroundColor = PickerViewConfig.shared.mainBackgroundColor + separatorInset = .zero + selectionStyle = .none + self.addSubview(titleLabel) + titleLabel.translatesAutoresizingMaskIntoConstraints = false + let topConstraint = NSLayoutConstraint(item: titleLabel, attribute: .top, relatedBy: .equal, toItem: titleLabel.superview!, attribute: .top, multiplier: 1.0, constant: 10) + let leftConstraint = NSLayoutConstraint(item: titleLabel, attribute: .left, relatedBy: .equal, toItem: titleLabel.superview!, attribute: .left, multiplier: 1.0, constant: 10) + let bottomConstraint = NSLayoutConstraint(item: titleLabel, attribute: .bottom, relatedBy: .equal, toItem: titleLabel.superview!, attribute: .bottom, multiplier: 1.0, constant: -10) + let rightConstraint = NSLayoutConstraint(item: titleLabel, attribute: .right, relatedBy: .equal, toItem: titleLabel.superview!, attribute: .right, multiplier: 1.0, constant: -50) + addConstraints([topConstraint, leftConstraint, bottomConstraint, rightConstraint]) + } + + required init?(coder: NSCoder) { + super.init(coder: coder) + setupView() + } +} diff --git a/CSPickerView/Classes/ToolBarView.swift b/CSPickerView/Classes/ToolBarView.swift new file mode 100755 index 0000000..b9cb058 --- /dev/null +++ b/CSPickerView/Classes/ToolBarView.swift @@ -0,0 +1,98 @@ +// +// ToolBarView.swift +// CSPickerView +// 弹出框顶部显示view +// Created by CoderStar on 2021/6/6. +// + +import UIKit + +@objcMembers +open class ToolBarView: UIView { + open var title = "" { + didSet { + titleLabel.text = title + } + } + + open var sureAction: PickerViewManager.BtnAction? + open var cancelAction: PickerViewManager.BtnAction? + + // 用来产生上下分割线的效果 + private lazy var contentView: UIView = { + let content = UIView() + content.backgroundColor = PickerViewConfig.shared.mainBackgroundColor + return content + }() + + // 文本框 + private lazy var titleLabel: UILabel = { + let label = UILabel() + label.textColor = PickerViewConfig.shared.centerLabelColor + label.textAlignment = .center + label.adjustsFontSizeToFitWidth = true + return label + }() + + // 取消按钮 + private lazy var clearBtn: UIButton = { + let btn = UIButton() + btn.setTitle(PickerViewUtils.localizedString(key: "CSPickerView.cancel"), for: UIControl.State()) + btn.setTitleColor(PickerViewConfig.shared.leftButtonColor, for: UIControl.State()) + return btn + }() + + // 完成按钮 + private lazy var doneBtn: UIButton = { + let donebtn = UIButton() + donebtn.setTitle(PickerViewUtils.localizedString(key: "CSPickerView.sure"), for: UIControl.State()) + donebtn.setTitleColor(PickerViewConfig.shared.rightButtonColor, for: UIControl.State()) + return donebtn + }() + + override public init(frame: CGRect) { + super.init(frame: frame) + commonInit() + } + + @available(*, unavailable) + required public init?(coder aDecoder: NSCoder) { + fatalError("init(coder:) has not been implemented") + } + + private func commonInit() { + backgroundColor = PickerViewConfig.shared.lineColor + addSubview(contentView) + contentView.addSubview(clearBtn) + contentView.addSubview(doneBtn) + contentView.addSubview(titleLabel) + + doneBtn.addTarget(self, action: #selector(self.sureBtnOnClick(_:)), for: .touchUpInside) + clearBtn.addTarget(self, action: #selector(self.cancelBtnOnClick(_:)), for: .touchUpInside) + } + + @objc + func sureBtnOnClick(_ sender: UIButton) { + sureAction?() + } + + @objc + func cancelBtnOnClick(_ sender: UIButton) { + cancelAction?() + } + + override open func layoutSubviews() { + super.layoutSubviews() + let margin: CGFloat = 15 + let contentHeight = bounds.size.height - 1 + contentView.frame = CGRect(x: 0, y: 0, width: bounds.size.width, height: contentHeight) + let clearBtnSize = clearBtn.sizeThatFits(CGSize(width: 0, height: contentHeight)) + let doneBtnSize = doneBtn.sizeThatFits(CGSize(width: 0, height: contentHeight)) + clearBtn.frame = CGRect(x: margin, y: 0, width: clearBtnSize.width, height: contentHeight) + doneBtn.frame = CGRect(x: bounds.size.width - doneBtnSize.width - margin, y: 0, width: doneBtnSize.width, height: contentHeight) + let titleX = clearBtn.frame.maxX + margin + let titleW = bounds.size.width - titleX - doneBtnSize.width - margin + + titleLabel.frame = CGRect(x: titleX, y: 0.0, width: titleW, height: contentHeight) + } +} diff --git a/CSPickerView/Frameworks/CSPickerView.bundle/Address.plist b/CSPickerView/Frameworks/CSPickerView.bundle/Address.plist new file mode 100755 index 0000000..6d975dc --- /dev/null +++ b/CSPickerView/Frameworks/CSPickerView.bundle/Address.plist @@ -0,0 +1,5391 @@ + + + + + + 北京市 + + 0 + + 北京市 + + 东城区 + 西城区 + 朝阳区 + 丰台区 + 石景山区 + 海淀区 + 门头沟区 + 房山区 + 通州区 + 顺义区 + 昌平区 + 大兴区 + 怀柔区 + 平谷区 + 密云县 + 延庆县 + + + + + + 天津市 + + 0 + + 天津市 + + 和平区 + 河东区 + 河西区 + 南开区 + 河北区 + 红桥区 + 塘沽区 + 汉沽区 + 大港区 + 东丽区 + 西青区 + 津南区 + 北辰区 + 武清区 + 宝坻区 + 宁河县 + 静海县 + 蓟县 + + + + + + 上海市 + + 0 + + 上海市 + + 黄浦区 + 卢湾区 + 徐汇区 + 长宁区 + 静安区 + 普陀区 + 闸北区 + 虹口区 + 杨浦区 + 闵行区 + 宝山区 + 嘉定区 + 浦东新区 + 金山区 + 松江区 + 青浦区 + 南汇区 + 奉贤区 + 崇明县 + + + + + + 重庆市 + + 0 + + 重庆市 + + 万州区 + 涪陵区 + 渝中区 + 大渡口区 + 江北区 + 沙坪坝区 + 九龙坡区 + 南岸区 + 北碚区 + 万盛区 + 双桥区 + 渝北区 + 巴南区 + 黔江区 + 长寿区 + 江津区 + 合川区 + 永川区 + 南川区 + 綦江县 + 潼南县 + 铜梁县 + 大足县 + 荣昌县 + 璧山县 + 梁平县 + 城口县 + 丰都县 + 垫江县 + 武隆县 + 忠县 + 开县 + 云阳县 + 奉节县 + 巫山县 + 巫溪县 + 石柱土家族自治县 + 秀山土家族苗族自治县 + 酉阳土家族苗族自治县 + 彭水苗族土家族自治县 + + + + + + 河北省 + + 0 + + 石家庄市 + + 长安区 + 桥东区 + 桥西区 + 新华区 + 井陉矿区 + 裕华区 + 井陉县 + 正定县 + 栾城县 + 行唐县 + 灵寿县 + 高邑县 + 深泽县 + 赞皇县 + 无极县 + 平山县 + 元氏县 + 赵县 + 辛集市 + 藁城市 + 晋州市 + 新乐市 + 鹿泉市 + + + 1 + + 唐山市 + + 路南区 + 路北区 + 古冶区 + 开平区 + 丰南区 + 丰润区 + 滦县 + 滦南县 + 乐亭县 + 迁西县 + 玉田县 + 唐海县 + 遵化市 + 迁安市 + + + 2 + + 秦皇岛市 + + 海港区 + 山海关区 + 北戴河区 + 青龙满族自治县 + 昌黎县 + 抚宁县 + 卢龙县 + + + 3 + + 邯郸市 + + 邯山区 + 丛台区 + 复兴区 + 峰峰矿区 + 邯郸县 + 临漳县 + 成安县 + 大名县 + 涉县 + 磁县 + 肥乡县 + 永年县 + 邱县 + 鸡泽县 + 广平县 + 馆陶县 + 魏县 + 曲周县 + 武安市 + + + 4 + + 邢台市 + + 桥东区 + 桥西区 + 邢台县 + 临城县 + 内丘县 + 柏乡县 + 隆尧县 + 任县 + 南和县 + 宁晋县 + 巨鹿县 + 新河县 + 广宗县 + 平乡县 + 威县 + 清河县 + 临西县 + 南宫市 + 沙河市 + + + 5 + + 保定市 + + 新市区 + 北市区 + 南市区 + 满城县 + 清苑县 + 涞水县 + 阜平县 + 徐水县 + 定兴县 + 唐县 + 高阳县 + 容城县 + 涞源县 + 望都县 + 安新县 + 易县 + 曲阳县 + 蠡县 + 顺平县 + 博野县 + 雄县 + 涿州市 + 定州市 + 安国市 + 高碑店市 + + + 6 + + 张家口市 + + 桥东区 + 桥西区 + 宣化区 + 下花园区 + 宣化县 + 张北县 + 康保县 + 沽源县 + 尚义县 + 蔚县 + 阳原县 + 怀安县 + 万全县 + 怀来县 + 涿鹿县 + 赤城县 + 崇礼县 + + + 7 + + 承德市 + + 双桥区 + 双滦区 + 鹰手营子矿区 + 承德县 + 兴隆县 + 平泉县 + 滦平县 + 隆化县 + 丰宁满族自治县 + 宽城满族自治县 + 围场满族蒙古族自治县 + + + 8 + + 沧州市 + + 新华区 + 运河区 + 沧县 + 青县 + 东光县 + 海兴县 + 盐山县 + 肃宁县 + 南皮县 + 吴桥县 + 献县 + 孟村回族自治县 + 泊头市 + 任丘市 + 黄骅市 + 河间市 + + + 9 + + 廊坊市 + + 安次区 + 广阳区 + 固安县 + 永清县 + 香河县 + 大城县 + 文安县 + 大厂回族自治县 + 霸州市 + 三河市 + + + 10 + + 衡水市 + + 桃城区 + 枣强县 + 武邑县 + 武强县 + 饶阳县 + 安平县 + 故城县 + 景县 + 阜城县 + 冀州市 + 深州市 + + + + + + 山西省 + + 0 + + 太原市 + + 小店区 + 迎泽区 + 杏花岭区 + 尖草坪区 + 万柏林区 + 晋源区 + 清徐县 + 阳曲县 + 娄烦县 + 古交市 + + + 1 + + 大同市 + + 城区 + 矿区 + 南郊区 + 新荣区 + 阳高县 + 天镇县 + 广灵县 + 灵丘县 + 浑源县 + 左云县 + 大同县 + + + 2 + + 阳泉市 + + 城区 + 矿区 + 郊区 + 平定县 + 盂县 + + + 3 + + 长治市 + + 城区 + 郊区 + 长治县 + 襄垣县 + 屯留县 +平顺县 + 平顺县 + 黎城县 + 壶关县 + 长子县 + 武乡县 + 沁县 + 沁源县 + 潞城市 + + + 4 + + 晋城市 + + 城区 + 沁水县 + 阳城县 + 陵川县 + 泽州县 + 高平市 + + + 5 + + 朔州市 + + 朔城区 + 平鲁区 + 山阴县 + 应县 + 右玉县 + 怀仁县 + + + 6 + + 晋中市 + + 榆次区 + 榆社县 + 左权县 + 和顺县 + 昔阳县 + 寿阳县 + 太谷县 + 祁县 + 平遥县 + 灵石县 + 介休市 + + + 7 + + 运城市 + + 盐湖区 + 临猗县 + 万荣县 + 闻喜县 + 稷山县 + 新绛县 + 绛县 + 垣曲县 + 夏县 + 平陆县 + 芮城县 + 永济市 + 河津市 + + + 8 + + 忻州市 + + 忻府区 + 定襄县 + 五台县 + 代县 + 繁峙县 + 宁武县 + 静乐县 + 神池县 + 五寨县 + 岢岚县 + 河曲县 + 保德县 + 偏关县 + 原平市 + + + 9 + + 临汾市 + + 尧都区 + 曲沃县 + 翼城县 + 襄汾县 + 洪洞县 + 古县 + 安泽县 + 浮山县 + 吉县 + 乡宁县 + 大宁县 + 隰县 + 永和县 + 蒲县 + 汾西县 + 侯马市 + 霍州市 + + + 10 + + 吕梁市 + + 离石区 + 文水县 + 交城县 + 兴县 + 临县 + 柳林县 + 石楼县 + 岚县 + 方山县 + 中阳县 + 交口县 + 孝义市 + 汾阳市 + + + + + + 内蒙古自治区 + + 0 + + 呼和浩特市 + + 新城区 + 回民区 + 玉泉区 + 赛罕区 + 土默特左旗 + 托克托县 + 和林格尔县 + 清水河县 + 武川县 + + + 1 + + 包头市 + + 东河区 + 昆都仑区 + 青山区 + 石拐区 + 白云鄂博矿区 + 九原区 + 土默特右旗 + 固阳县 + 达尔罕茂明安联合旗 + + + 2 + + 乌海市 + + 海勃湾区 + 海南区 + 乌达区 + + + 3 + + 赤峰市 + + 红山区 + 元宝山区 + 松山区 + 阿鲁科尔沁旗 + 巴林左旗 + 巴林右旗 + 林西县 + 克什克腾旗 + 翁牛特旗 + 喀喇沁旗 + 宁城县 + 敖汉旗 + + + 4 + + 通辽市 + + 科尔沁区 + 科尔沁左翼中旗 + 科尔沁左翼后旗 + 开鲁县 + 库伦旗 + 奈曼旗 + 扎鲁特旗 + 霍林郭勒市 + + + 5 + + 鄂尔多斯市 + + 东胜区 + 达拉特旗 + 准格尔旗 + 鄂托克前旗 + 鄂托克旗 + 杭锦旗 + 乌审旗 + 伊金霍洛旗 + + + 6 + + 呼伦贝尔市 + + 海拉尔区 + 阿荣旗 + 莫力达瓦达斡尔族自治旗 + 鄂伦春自治旗 + 鄂温克族自治旗 + 陈巴尔虎旗 + 新巴尔虎左旗 + 新巴尔虎右旗 + 满洲里市 + 牙克石市 + 扎兰屯市 + 额尔古纳市 + 根河市 + + + 7 + + 巴彦淖尔市 + + 临河区 + 五原县 + 磴口县 + 乌拉特前旗 + 乌拉特中旗 + 乌拉特后旗 + 杭锦后旗 + + + 8 + + 乌兰察布市 + + 集宁区 + 卓资县 + 化德县 + 商都县 + 兴和县 + 凉城县 + 察哈尔右翼前旗 + 察哈尔右翼中旗 + 察哈尔右翼后旗 + 四子王旗 + 丰镇市 + + + 9 + + 兴安盟 + + 乌兰浩特市 + 阿尔山市 + 科尔沁右翼前旗 + 科尔沁右翼中旗 + 扎赉特旗 + 突泉县 + + + 10 + + 锡林郭勒盟 + + 二连浩特市 + 锡林浩特市 + 阿巴嘎旗 + 苏尼特左旗 + 苏尼特右旗 + 东乌珠穆沁旗 + 西乌珠穆沁旗 + 太仆寺旗 + 镶黄旗 + 正镶白旗 + 正蓝旗 + 多伦县 + + + 11 + + 阿拉善盟 + + 阿拉善左旗 + 阿拉善右旗 + 额济纳旗 + + + + + + 辽宁省 + + 0 + + 沈阳市 + + 和平区 + 沈河区 + 大东区 + 皇姑区 + 铁西区 + 苏家屯区 + 东陵区 + 沈北新区 + 于洪区 + 辽中县 + 康平县 + 法库县 + 新民市 + + + 1 + + 大连市 + + 中山区 + 西岗区 + 沙河口区 + 甘井子区 + 旅顺口区 + 金州区 + 长海县 + 瓦房店市 + 普兰店市 + 庄河市 + + + 2 + + 鞍山市 + + 铁东区 + 铁西区 + 立山区 + 千山区 + 台安县 + 岫岩满族自治县 + 海城市 + + + 3 + + 抚顺市 + + 新抚区 + 东洲区 + 望花区 + 顺城区 + 抚顺县 + 新宾满族自治县 + 清原满族自治县 + + + 4 + + 本溪市 + + 平山区 + 溪湖区 + 明山区 + 南芬区 + 本溪满族自治县 + 桓仁满族自治县 + + + 5 + + 丹东市 + + 元宝区 + 振兴区 + 振安区 + 宽甸满族自治县 + 东港市 + 凤城市 + + + 6 + + 锦州市 + + 古塔区 + 凌河区 + 太和区 + 黑山县 + 义县 + 凌海市 + 北镇市 + + + 7 + + 营口市 + + 站前区 + 西市区 + 鲅鱼圈区 + 老边区 + 盖州市 + 大石桥市 + + + 8 + + 阜新市 + + 海州区 + 新邱区 + 太平区 + 清河门区 + 细河区 + 阜新蒙古族自治县 + 彰武县 + + + 9 + + 辽阳市 + + 白塔区 + 文圣区 + 宏伟区 + 弓长岭区 + 太子河区 + 辽阳县 + 灯塔市 + + + 10 + + 盘锦市 + + 双台子区 + 兴隆台区 + 大洼县 + 盘山县 + + + 11 + + 铁岭市 + + 银州区 + 清河区 + 铁岭县 + 西丰县 + 昌图县 + 调兵山市 + 开原市 + + + 12 + + 朝阳市 + + 双塔区 + 龙城区 + 朝阳县 + 建平县 + 喀喇沁左翼蒙古族自治县 + 北票市 + 凌源市 + + + 13 + + 葫芦岛市 + + 连山区 + 龙港区 + 南票区 + 绥中县 + 建昌县 + 兴城市 + + + + + + 吉林省 + + 0 + + 长春市 + + 南关区 + 宽城区 + 朝阳区 + 二道区 + 绿园区 + 双阳区 + 农安县 + 九台市 + 榆树市 + 德惠市 + + + 1 + + 吉林市 + + 昌邑区 + 龙潭区 + 船营区 + 丰满区 + 永吉县 + 蛟河市 + 桦甸市 + 舒兰市 + 磐石市 + + + 2 + + 四平市 + + 铁西区 + 铁东区 + 梨树县 + 伊通满族自治县 + 公主岭市 + 双辽市 + + + 3 + + 辽源市 + + 龙山区 + 西安区 + 东丰县 + 东辽县 + + + 4 + + 通化市 + + 东昌区 + 二道江区 + 通化县 + 辉南县 + 柳河县 + 梅河口市 + 集安市 + + + 5 + + 白山市 + + 八道江区 + 江源区 + 抚松县 + 靖宇县 + 长白朝鲜族自治县 + 临江市 + + + 6 + + 松原市 + + 宁江区 + 前郭尔罗斯蒙古族自治县 + 长岭县 + 乾安县 + 扶余县 + + + 7 + + 白城市 + + 洮北区 + 镇赉县 + 通榆县 + 洮南市 + 大安市 + + + 8 + + 延边朝鲜族自治州 + + 延吉市 + 图们市 + 敦化市 + 珲春市 + 龙井市 + 和龙市 + 汪清县 + 安图县 + + + + + + 黑龙江省 + + 0 + + 哈尔滨市 + + 道里区 + 南岗区 + 道外区 + 平房区 + 松北区 + 香坊区 + 呼兰区 + 阿城区 + 依兰县 + 方正县 + 宾县 + 巴彦县 + 木兰县 + 通河县 + 延寿县 + 双城市 + 尚志市 + 五常市 + + + 1 + + 齐齐哈尔市 + + 龙沙区 + 建华区 + 铁锋区 + 昂昂溪区 + 富拉尔基区 + 碾子山区 + 梅里斯达斡尔族区 + 龙江县 + 依安县 + 泰来县 + 甘南县 + 富裕县 + 克山县 + 克东县 + 拜泉县 + 讷河市 + + + 2 + + 鸡西市 + + 鸡冠区 + 恒山区 + 滴道区 + 梨树区 + 城子河区 + 麻山区 + 鸡东县 + 虎林市 + 密山市 + + + 3 + + 鹤岗市 + + 向阳区 + 工农区 + 南山区 + 兴安区 + 东山区 + 兴山区 + 萝北县 + 绥滨县 + + + 4 + + 双鸭山市 + + 尖山区 + 岭东区 + 四方台区 + 宝山区 + 集贤县 + 友谊县 + 宝清县 + 饶河县 + + + 5 + + 大庆市 + + 萨尔图区 + 龙凤区 + 让胡路区 + 红岗区 + 大同区 + 肇州县 + 肇源县 + 林甸县 + 杜尔伯特蒙古族自治县 + + + 6 + + 伊春市 + + 伊春区 + 南岔区 + 友好区 + 西林区 + 翠峦区 + 新青区 + 美溪区 + 金山屯区 + 五营区 + 乌马河区 + 汤旺河区 + 带岭区 + 乌伊岭区 + 红星区 + 上甘岭区 + 嘉荫县 + 铁力市 + + + 7 + + 佳木斯市 + + 向阳区 + 前进区 + 东风区 + 郊区 + 桦南县 + 桦川县 + 汤原县 + 抚远县 + 同江市 + 富锦市 + + + 8 + + 七台河市 + + 新兴区 + 桃山区 + 茄子河区 + 勃利县 + + + 9 + + 牡丹江市 + + 东安区 + 阳明区 + 爱民区 + 西安区 + 东宁县 + 林口县 + 绥芬河市 + 海林市 + 宁安市 + 穆棱市 + + + 10 + + 黑河市 + + 爱辉区 + 嫩江县 + 逊克县 + 孙吴县 + 北安市 + 五大连池市 + + + 11 + + 绥化市 + + 北林区 + 望奎县 + 兰西县 + 青冈县 + 庆安县 + 明水县 + 绥棱县 + 安达市 + 肇东市 + 海伦市 + + + 12 + + 大兴安岭地区 + + 加格达奇区 + 松岭区 + 新林区 + 呼中区 + 呼玛县 + 塔河县 + 漠河县 + + + + + + 江苏省 + + 0 + + 南京市 + + 玄武区 + 白下区 + 秦淮区 + 建邺区 + 鼓楼区 + 下关区 + 浦口区 + 栖霞区 + 雨花台区 + 江宁区 + 六合区 + 溧水县 + 高淳县 + + + 1 + + 无锡市 + + 崇安区 + 南长区 + 北塘区 + 锡山区 + 惠山区 + 滨湖区 + 江阴市 + 宜兴市 + + + 2 + + 徐州市 + + 鼓楼区 + 云龙区 + 九里区 + 贾汪区 + 泉山区 + 丰县 + 沛县 + 铜山县 + 睢宁县 + 新沂市 + 邳州市 + + + 3 + + 常州市 + + 天宁区 + 钟楼区 + 戚墅堰区 + 新北区 + 武进区 + 溧阳市 + 金坛市 + + + 4 + + 苏州市 + + 沧浪区 + 平江区 + 金阊区 + 虎丘区 + 吴中区 + 相城区 + 常熟市 + 张家港市 + 昆山市 + 吴江市 + 太仓市 + + + 5 + + 南通市 + + 崇川区 + 港闸区 + 海安县 + 如东县 + 启东市 + 如皋市 + 通州市 + 海门市 + + + 6 + + 连云港市 + + 连云区 + 新浦区 + 海州区 + 赣榆县 + 东海县 + 灌云县 + 灌南县 + + + 7 + + 淮安市 + + 清河区 + 楚州区 + 淮阴区 + 清浦区 + 涟水县 + 洪泽县 + 盱眙县 + 金湖县 + + + 8 + + 盐城市 + + 亭湖区 + 盐都区 + 响水县 + 滨海县 + 阜宁县 + 射阳县 + 建湖县 + 东台市 + 大丰市 + + + 9 + + 扬州市 + + 广陵区 + 邗江区 + 维扬区 + 宝应县 + 仪征市 + 高邮市 + 江都市 + + + 10 + + 镇江市 + + 京口区 + 润州区 + 丹徒区 + 丹阳市 + 扬中市 + 句容市 + + + 11 + + 泰州市 + + 海陵区 + 高港区 + 兴化市 + 靖江市 + 泰兴市 + 姜堰市 + + + 12 + + 宿迁市 + + 宿城区 + 宿豫区 + 沭阳县 + 泗阳县 + 泗洪县 + + + + + + 浙江省 + + 0 + + 杭州市 + + 上城区 + 下城区 + 江干区 + 拱墅区 + 西湖区 + 滨江区 + 萧山区 + 余杭区 + 桐庐县 + 淳安县 + 建德市 + 富阳市 + 临安市 + + + 1 + + 宁波市 + + 海曙区 + 江东区 + 江北区 + 北仑区 + 镇海区 + 鄞州区 + 象山县 + 宁海县 + 余姚市 + 慈溪市 + 奉化市 + + + 2 + + 温州市 + + 鹿城区 + 龙湾区 + 瓯海区 + 洞头县 + 永嘉县 + 平阳县 + 苍南县 + 文成县 + 泰顺县 + 瑞安市 + 乐清市 + + + 3 + + 嘉兴市 + + 南湖区 + 秀洲区 + 嘉善县 + 海盐县 + 海宁市 + 平湖市 + 桐乡市 + + + 4 + + 湖州市 + + 吴兴区 + 南浔区 + 德清县 + 长兴县 + 安吉县 + + + 5 + + 绍兴市 + + 越城区 + 绍兴县 + 新昌县 + 诸暨市 + 上虞市 + 嵊州市 + + + 6 + + 金华市 + + 婺城区 + 金东区 + 武义县 + 浦江县 + 磐安县 + 兰溪市 + 义乌市 + 东阳市 + 永康市 + + + 7 + + 衢州市 + + 柯城区 + 衢江区 + 常山县 + 开化县 + 龙游县 + 江山市 + + + 8 + + 舟山市 + + 定海区 + 普陀区 + 岱山县 + 嵊泗县 + + + 9 + + 台州市 + + 椒江区 + 黄岩区 + 路桥区 + 玉环县 + 三门县 + 天台县 + 仙居县 + 温岭市 + 临海市 + + + 10 + + 丽水市 + + 莲都区 + 青田县 + 缙云县 + 遂昌县 + 松阳县 + 云和县 + 庆元县 + 景宁畲族自治县 + 龙泉市 + + + + + + 安徽省 + + 0 + + 合肥市 + + 瑶海区 + 庐阳区 + 蜀山区 + 包河区 + 长丰县 + 肥东县 + 肥西县 + + + 1 + + 芜湖市 + + 镜湖区 + 弋江区 + 鸠江区 + 三山区 + 芜湖县 + 繁昌县 + 南陵县 + + + 2 + + 蚌埠市 + + 龙子湖区 + 蚌山区 + 禹会区 + 淮上区 + 怀远县 + 五河县 + 固镇县 + + + 3 + + 淮南市 + + 大通区 + 田家庵区 + 谢家集区 + 八公山区 + 潘集区 + 凤台县 + + + 4 + + 马鞍山市 + + 金家庄区 + 花山区 + 雨山区 + 当涂县 + + + 5 + + 淮北市 + + 杜集区 + 相山区 + 烈山区 + 濉溪县 + + + 6 + + 铜陵市 + + 铜官山区 + 狮子山区 + 郊区 + 铜陵县 + + + 7 + + 安庆市 + + 迎江区 + 大观区 + 宜秀区 + 怀宁县 + 枞阳县 + 潜山县 + 太湖县 + 宿松县 + 望江县 + 岳西县 + 桐城市 + + + 8 + + 黄山市 + + 屯溪区 + 黄山区 + 徽州区 + 歙县 + 休宁县 + 黟县 + 祁门县 + + + 9 + + 滁州市 + + 琅琊区 + 南谯区 + 来安县 + 全椒县 + 定远县 + 凤阳县 + 天长市 + 明光市 + + + 10 + + 阜阳市 + + 颍州区 + 颍东区 + 颍泉区 + 临泉县 + 太和县 + 阜南县 + 颍上县 + 界首市 + + + 11 + + 宿州市 + + 埇桥区 + 砀山县 + 萧县 + 灵璧县 + 泗县 + + + 12 + + 巢湖市 + + 居巢区 + 庐江县 + 无为县 + 含山县 + 和县 + + + 13 + + 六安市 + + 金安区 + 裕安区 + 寿县 + 霍邱县 + 舒城县 + 金寨县 + 霍山县 + + + 14 + + 亳州市 + + 谯城区 + 涡阳县 + 蒙城县 + 利辛县 + + + 15 + + 池州市 + + 贵池区 + 东至县 + 石台县 + 青阳县 + + + 16 + + 宣城市 + + 宣州区 + 郎溪县 + 广德县 + 泾县 + 绩溪县 + 旌德县 + 宁国市 + + + + + + 福建省 + + 0 + + 福州市 + + 鼓楼区 + 台江区 + 仓山区 + 马尾区 + 晋安区 + 闽侯县 + 连江县 + 罗源县 + 闽清县 + 永泰县 + 平潭县 + 福清市 + 长乐市 + + + 1 + + 厦门市 + + 思明区 + 海沧区 + 湖里区 + 集美区 + 同安区 + 翔安区 + + + 2 + + 莆田市 + + 城厢区 + 涵江区 + 荔城区 + 秀屿区 + 仙游县 + + + 3 + + 三明市 + + 梅列区 + 三元区 + 明溪县 + 清流县 + 宁化县 + 大田县 + 尤溪县 + 沙县 + 将乐县 + 泰宁县 + 建宁县 + 永安市 + + + 4 + + 泉州市 + + 鲤城区 + 丰泽区 + 洛江区 + 泉港区 + 惠安县 + 安溪县 + 永春县 + 德化县 + 金门县 + 石狮市 + 晋江市 + 南安市 + + + 5 + + 漳州市 + + 芗城区 + 龙文区 + 云霄县 + 漳浦县 + 诏安县 + 长泰县 + 东山县 + 南靖县 + 平和县 + 华安县 + 龙海市 + + + 6 + + 南平市 + + 延平区 + 顺昌县 + 浦城县 + 光泽县 + 松溪县 + 政和县 + 邵武市 + 武夷山市 + 建瓯市 + 建阳市 + + + 7 + + 龙岩市 + + 新罗区 + 长汀县 + 永定县 + 上杭县 + 武平县 + 连城县 + 漳平市 + + + 8 + + 宁德市 + + 蕉城区 + 霞浦县 + 古田县 + 屏南县 + 寿宁县 + 周宁县 + 柘荣县 + 福安市 + 福鼎市 + + + + + + 江西省 + + 0 + + 南昌市 + + 东湖区 + 西湖区 + 青云谱区 + 湾里区 + 青山湖区 + 南昌县 + 新建县 + 安义县 + 进贤县 + + + 1 + + 景德镇市 + + 昌江区 + 珠山区 + 浮梁县 + 乐平市 + + + 2 + + 萍乡市 + + 安源区 + 湘东区 + 莲花县 + 上栗县 + 芦溪县 + + + 3 + + 九江市 + + 庐山区 + 浔阳区 + 九江县 + 武宁县 + 修水县 + 永修县 + 德安县 + 星子县 + 都昌县 + 湖口县 + 彭泽县 + 瑞昌市 + + + 4 + + 新余市 + + 渝水区 + 分宜县 + + + 5 + + 鹰潭市 + + 月湖区 + 余江县 + 贵溪市 + + + 6 + + 赣州市 + + 章贡区 + 赣县 + 信丰县 + 大余县 + 上犹县 + 崇义县 + 安远县 + 龙南县 + 定南县 + 全南县 + 宁都县 + 于都县 + 兴国县 + 会昌县 + 寻乌县 + 石城县 + 瑞金市 + 南康市 + + + 7 + + 吉安市 + + 吉州区 + 青原区 + 吉安县 + 吉水县 + 峡江县 + 新干县 + 永丰县 + 泰和县 + 遂川县 + 万安县 + 安福县 + 永新县 + 井冈山市 + + + 8 + + 宜春市 + + 袁州区 + 奉新县 + 万载县 + 上高县 + 宜丰县 + 靖安县 + 铜鼓县 + 丰城市 + 樟树市 + 高安市 + + + 9 + + 抚州市 + + 临川区 + 南城县 + 黎川县 + 南丰县 + 崇仁县 + 乐安县 + 宜黄县 + 金溪县 + 资溪县 + 东乡县 + 广昌县 + + + 10 + + 上饶市 + + 信州区 + 上饶县 + 广丰县 + 玉山县 + 铅山县 + 横峰县 + 弋阳县 + 余干县 + 鄱阳县 + 万年县 + 婺源县 + 德兴市 + + + + + + 山东省 + + 0 + + 济南市 + + 历下区 + 市中区 + 槐荫区 + 天桥区 + 历城区 + 长清区 + 平阴县 + 济阳县 + 商河县 + 章丘市 + + + 1 + + 青岛市 + + 市南区 + 市北区 + 四方区 + 黄岛区 + 崂山区 + 李沧区 + 城阳区 + 胶州市 + 即墨市 + 平度市 + 胶南市 + 莱西市 + + + 2 + + 淄博市 + + 淄川区 + 张店区 + 博山区 + 临淄区 + 周村区 + 桓台县 + 高青县 + 沂源县 + + + 3 + + 枣庄市 + + 市中区 + 薛城区 + 峄城区 + 台儿庄区 + 山亭区 + 滕州市 + + + 4 + + 东营市 + + 东营区 + 河口区 + 垦利县 + 利津县 + 广饶县 + + + 5 + + 烟台市 + + 芝罘区 + 福山区 + 牟平区 + 莱山区 + 长岛县 + 龙口市 + 莱阳市 + 莱州市 + 蓬莱市 + 招远市 + 栖霞市 + 海阳市 + + + 6 + + 潍坊市 + + 潍城区 + 寒亭区 + 坊子区 + 奎文区 + 临朐县 + 昌乐县 + 青州市 + 诸城市 + 寿光市 + 安丘市 + 高密市 + 昌邑市 + + + 7 + + 济宁市 + + 市中区 + 任城区 + 微山县 + 鱼台县 + 金乡县 + 嘉祥县 + 汶上县 + 泗水县 + 梁山县 + 曲阜市 + 兖州市 + 邹城市 + + + 8 + + 泰安市 + + 泰山区 + 岱岳区 + 宁阳县 + 东平县 + 新泰市 + 肥城市 + + + 9 + + 威海市 + + 环翠区 + 文登市 + 荣成市 + 乳山市 + + + 10 + + 日照市 + + 东港区 + 岚山区 + 五莲县 + 莒县 + + + 11 + + 莱芜市 + + 莱城区 + 钢城区 + + + 12 + + 临沂市 + + 兰山区 + 罗庄区 + 河东区 + 沂南县 + 郯城县 + 沂水县 + 苍山县 + 费县 + 平邑县 + 莒南县 + 蒙阴县 + 临沭县 + + + 13 + + 德州市 + + 德城区 + 陵县 + 宁津县 + 庆云县 + 临邑县 + 齐河县 + 平原县 + 夏津县 + 武城县 + 乐陵市 + 禹城市 + + + 14 + + 聊城市 + + 东昌府区 + 阳谷县 + 莘县 + 茌平县 + 东阿县 + 冠县 + 高唐县 + 临清市 + + + 15 + + 滨州市 + + 滨城区 + 惠民县 + 阳信县 + 无棣县 + 沾化县 + 博兴县 + 邹平县 + + + 16 + + 菏泽市 + + 牡丹区 + 曹县 + 单县 + 成武县 + 巨野县 + 郓城县 + 鄄城县 + 定陶县 + 东明县 + + + + + + 河南省 + + 0 + + 郑州市 + + 中原区 + 二七区 + 管城回族区 + 金水区 + 上街区 + 惠济区 + 中牟县 + 巩义市 + 荥阳市 + 新密市 + 新郑市 + 登封市 + + + 1 + + 开封市 + + 龙亭区 + 顺河回族区 + 鼓楼区 + 禹王台区 + 金明区 + 杞县 + 通许县 + 尉氏县 + 开封县 + 兰考县 + + + 2 + + 洛阳市 + + 老城区 + 西工区 + 瀍河回族区 + 涧西区 + 吉利区 + 洛龙区 + 孟津县 + 新安县 + 栾川县 + 嵩县 + 汝阳县 + 宜阳县 + 洛宁县 + 伊川县 + 偃师市 + + + 3 + + 平顶山市 + + 新华区 + 卫东区 + 石龙区 + 湛河区 + 宝丰县 + 叶县 + 鲁山县 + 郏县 + 舞钢市 + 汝州市 + + + 4 + + 安阳市 + + 文峰区 + 北关区 + 殷都区 + 龙安区 + 安阳县 + 汤阴县 + 滑县 + 内黄县 + 林州市 + + + 5 + + 鹤壁市 + + 鹤山区 + 山城区 + 淇滨区 + 浚县 + 淇县 + + + 6 + + 新乡市 + + 红旗区 + 卫滨区 + 凤泉区 + 牧野区 + 新乡县 + 获嘉县 + 原阳县 + 延津县 + 封丘县 + 长垣县 + 卫辉市 + 辉县市 + + + 7 + + 焦作市 + + 解放区 + 中站区 + 马村区 + 山阳区 + 修武县 + 博爱县 + 武陟县 + 温县 + 沁阳市 + 孟州市 + + + 8 + + 濮阳市 + + 华龙区 + 清丰县 + 南乐县 + 范县 + 台前县 + 濮阳县 + + + 9 + + 许昌市 + + 魏都区 + 许昌县 + 鄢陵县 + 襄城县 + 禹州市 + 长葛市 + + + 10 + + 漯河市 + + 源汇区 + 郾城区 + 召陵区 + 舞阳县 + 临颍县 + + + 11 + + 三门峡市 + + 湖滨区 + 渑池县 + 陕县 + 卢氏县 + 义马市 + 灵宝市 + + + 12 + + 南阳市 + + 宛城区 + 卧龙区 + 南召县 + 方城县 + 西峡县 + 镇平县 + 内乡县 + 淅川县 + 社旗县 + 唐河县 + 新野县 + 桐柏县 + 邓州市 + + + 13 + + 商丘市 + + 梁园区 + 睢阳区 + 民权县 + 睢县 + 宁陵县 + 柘城县 + 虞城县 + 夏邑县 + 永城市 + + + 14 + + 信阳市 + + 浉河区 + 平桥区 + 罗山县 + 光山县 + 新县 + 商城县 + 固始县 + 潢川县 + 淮滨县 + 息县 + + + 15 + + 周口市 + + 川汇区 + 扶沟县 + 西华县 + 商水县 + 沈丘县 + 郸城县 + 淮阳县 + 太康县 + 鹿邑县 + 项城市 + + + 16 + + 驻马店市 + + 驿城区 + 西平县 + 上蔡县 + 平舆县 + 正阳县 + 确山县 + 泌阳县 + 汝南县 + 遂平县 + 新蔡县 + + + 17 + + 济源市 + + 济源市 + + + + + + 湖北省 + + 0 + + 武汉市 + + 江岸区 + 江汉区 + 硚口区 + 汉阳区 + 武昌区 + 青山区 + 洪山区 + 东西湖区 + 汉南区 + 蔡甸区 + 江夏区 + 黄陂区 + 新洲区 + + + 1 + + 黄石市 + + 黄石港区 + 西塞山区 + 下陆区 + 铁山区 + 阳新县 + 大冶市 + + + 2 + + 十堰市 + + 茅箭区 + 张湾区 + 郧县 + 郧西县 + 竹山县 + 竹溪县 + 房县 + 丹江口市 + + + 3 + + 宜昌市 + + 西陵区 + 伍家岗区 + 点军区 + 猇亭区 + 夷陵区 + 远安县 + 兴山县 + 秭归县 + 长阳土家族自治县 + 五峰土家族自治县 + 宜都市 + 当阳市 + 枝江市 + + + 4 + + 襄樊市 + + 襄城区 + 樊城区 + 襄阳区 + 南漳县 + 谷城县 + 保康县 + 老河口市 + 枣阳市 + 宜城市 + + + 5 + + 鄂州市 + + 梁子湖区 + 华容区 + 鄂城区 + + + 6 + + 荆门市 + + 东宝区 + 掇刀区 + 京山县 + 沙洋县 + 钟祥市 + + + 7 + + 孝感市 + + 孝南区 + 孝昌县 + 大悟县 + 云梦县 + 应城市 + 安陆市 + 汉川市 + + + 8 + + 荆州市 + + 沙市区 + 荆州区 + 公安县 + 监利县 + 江陵县 + 石首市 + 洪湖市 + 松滋市 + + + 9 + + 黄冈市 + + 黄州区 + 团风县 + 红安县 + 罗田县 + 英山县 + 浠水县 + 蕲春县 + 黄梅县 + 麻城市 + 武穴市 + + + 10 + + 咸宁市 + + 咸安区 + 嘉鱼县 + 通城县 + 崇阳县 + 通山县 + 赤壁市 + + + 11 + + 随州市 + + 曾都区 + 广水市 + + + 12 + + 恩施土家族苗族自治州 + + 恩施市 + 利川市 + 建始县 + 巴东县 + 宣恩县 + 咸丰县 + 来凤县 + 鹤峰县 + + + 13 + + 仙桃市 + + 仙桃市 + + + 14 + + 潜江市 + + 潜江市 + + + 15 + + 天门市 + + 天门市 + + + 16 + + 神农架林区 + + 神农架林区 + + + + + + 湖南省 + + 0 + + 长沙市 + + 芙蓉区 + 天心区 + 岳麓区 + 开福区 + 雨花区 + 长沙县 + 望城县 + 宁乡县 + 浏阳市 + + + 1 + + 株洲市 + + 荷塘区 + 芦淞区 + 石峰区 + 天元区 + 株洲县 + 攸县 + 茶陵县 + 炎陵县 + 醴陵市 + + + 2 + + 湘潭市 + + 雨湖区 + 岳塘区 + 湘潭县 + 湘乡市 + 韶山市 + + + 3 + + 衡阳市 + + 珠晖区 + 雁峰区 + 石鼓区 + 蒸湘区 + 南岳区 + 衡阳县 + 衡南县 + 衡山县 + 衡东县 + 祁东县 + 耒阳市 + 常宁市 + + + 4 + + 邵阳市 + + 双清区 + 大祥区 + 北塔区 + 邵东县 + 新邵县 + 邵阳县 + 隆回县 + 洞口县 + 绥宁县 + 新宁县 + 城步苗族自治县 + 武冈市 + + + 5 + + 岳阳市 + + 岳阳楼区 + 云溪区 + 君山区 + 岳阳县 + 华容县 + 湘阴县 + 平江县 + 汨罗市 + 临湘市 + + + 6 + + 常德市 + + 武陵区 + 鼎城区 + 安乡县 + 汉寿县 + 澧县 + 临澧县 + 桃源县 + 石门县 + 津市市 + + + 7 + + 张家界市 + + 永定区 + 武陵源区 + 慈利县 + 桑植县 + + + 8 + + 益阳市 + + 资阳区 + 赫山区 + 南县 + 桃江县 + 安化县 + 沅江市 + + + 9 + + 郴州市 + + 北湖区 + 苏仙区 + 桂阳县 + 宜章县 + 永兴县 + 嘉禾县 + 临武县 + 汝城县 + 桂东县 + 安仁县 + 资兴市 + + + 10 + + 永州市 + + 零陵区 + 冷水滩区 + 祁阳县 + 东安县 + 双牌县 + 道县 + 江永县 + 宁远县 + 蓝山县 + 新田县 + 江华瑶族自治县 + + + 11 + + 怀化市 + + 鹤城区 + 中方县 + 沅陵县 + 辰溪县 + 溆浦县 + 会同县 + 麻阳苗族自治县 + 新晃侗族自治县 + 芷江侗族自治县 + 靖州苗族侗族自治县 + 通道侗族自治县 + 洪江市 + + + 12 + + 娄底市 + + 娄星区 + 双峰县 + 新化县 + 冷水江市 + 涟源市 + + + 13 + + 湘西土家族苗族自治州 + + 吉首市 + 泸溪县 + 凤凰县 + 花垣县 + 保靖县 + 古丈县 + 永顺县 + 龙山县 + + + + + + 广东省 + + 0 + + 广州市 + + 荔湾区 + 越秀区 + 海珠区 + 天河区 + 白云区 + 黄埔区 + 番禺区 + 花都区 + 南沙区 + 萝岗区 + 增城市 + 从化市 + + + 1 + + 韶关市 + + 武江区 + 浈江区 + 曲江区 + 始兴县 + 仁化县 + 翁源县 + 乳源瑶族自治县 + 新丰县 + 乐昌市 + 南雄市 + + + 2 + + 深圳市 + + 罗湖区 + 福田区 + 南山区 + 宝安区 + 龙岗区 + 盐田区 + + + 3 + + 珠海市 + + 香洲区 + 斗门区 + 金湾区 + + + 4 + + 汕头市 + + 龙湖区 + 金平区 + 濠江区 + 潮阳区 + 潮南区 + 澄海区 + 南澳县 + + + 5 + + 佛山市 + + 禅城区 + 南海区 + 顺德区 + 三水区 + 高明区 + + + 6 + + 江门市 + + 蓬江区 + 江海区 + 新会区 + 台山市 + 开平市 + 鹤山市 + 恩平市 + + + 7 + + 湛江市 + + 赤坎区 + 霞山区 + 坡头区 + 麻章区 + 遂溪县 + 徐闻县 + 廉江市 + 雷州市 + 吴川市 + + + 8 + + 茂名市 + + 茂南区 + 茂港区 + 电白县 + 高州市 + 化州市 + 信宜市 + + + 9 + + 肇庆市 + + 端州区 + 鼎湖区 + 广宁县 + 怀集县 + 封开县 + 德庆县 + 高要市 + 四会市 + + + 10 + + 惠州市 + + 惠城区 + 惠阳区 + 博罗县 + 惠东县 + 龙门县 + + + 11 + + 梅州市 + + 梅江区 + 梅县 + 大埔县 + 丰顺县 + 五华县 + 平远县 + 蕉岭县 + 兴宁市 + + + 12 + + 汕尾市 + + 城区 + 海丰县 + 陆河县 + 陆丰市 + + + 13 + + 河源市 + + 源城区 + 紫金县 + 龙川县 + 连平县 + 和平县 + 东源县 + + + 14 + + 阳江市 + + 江城区 + 阳西县 + 阳东县 + 阳春市 + + + 15 + + 清远市 + + 清城区 + 佛冈县 + 阳山县 + 连山壮族瑶族自治县 + 连南瑶族自治县 + 清新县 + 英德市 + 连州市 + + + 16 + + 东莞市 + + 东莞市 + + + 17 + + 中山市 + + 中山市 + + + 18 + + 潮州市 + + 湘桥区 + 潮安县 + 饶平县 + + + 19 + + 揭阳市 + + 榕城区 + 揭东县 + 揭西县 + 惠来县 + 普宁市 + + + 20 + + 云浮市 + + 云城区 + 新兴县 + 郁南县 + 云安县 + 罗定市 + + + + + + 广西壮族自治区 + + 0 + + 南宁市 + + 兴宁区 + 青秀区 + 江南区 + 西乡塘区 + 良庆区 + 邕宁区 + 武鸣县 + 隆安县 + 马山县 + 上林县 + 宾阳县 + 横县 + + + 1 + + 柳州市 + + 城中区 + 鱼峰区 + 柳南区 + 柳北区 + 柳江县 + 柳城县 + 鹿寨县 + 融安县 + 融水苗族自治县 + 三江侗族自治县 + + + 2 + + 桂林市 + + 秀峰区 + 叠彩区 + 象山区 + 七星区 + 雁山区 + 阳朔县 + 临桂县 + 灵川县 + 全州县 + 兴安县 + 永福县 + 灌阳县 + 龙胜各族自治县 + 资源县 + 平乐县 + 荔浦县 + 恭城瑶族自治县 + + + 3 + + 梧州市 + + 万秀区 + 蝶山区 + 长洲区 + 苍梧县 + 藤县 + 蒙山县 + 岑溪市 + + + 4 + + 北海市 + + 海城区 + 银海区 + 铁山港区 + 合浦县 + + + 5 + + 防城港市 + + 港口区 + 防城区 + 上思县 + 东兴市 + + + 6 + + 钦州市 + + 钦南区 + 钦北区 + 灵山县 + 浦北县 + + + 7 + + 贵港市 + + 港北区 + 港南区 + 覃塘区 + 平南县 + 桂平市 + + + 8 + + 玉林市 + + 玉州区 + 容县 + 陆川县 + 博白县 + 兴业县 + 北流市 + + + 9 + + 百色市 + + 右江区 + 田阳县 + 田东县 + 平果县 + 德保县 + 靖西县 + 那坡县 + 凌云县 + 乐业县 + 田林县 + 西林县 + 隆林各族自治县 + + + 10 + + 贺州市 + + 八步区 + 昭平县 + 钟山县 + 富川瑶族自治县 + + + 11 + + 河池市 + + 金城江区 + 南丹县 + 天峨县 + 凤山县 + 东兰县 + 罗城仫佬族自治县 + 环江毛南族自治县 + 巴马瑶族自治县 + 都安瑶族自治县 + 大化瑶族自治县 + 宜州市 + + + 12 + + 来宾市 + + 兴宾区 + 忻城县 + 象州县 + 武宣县 + 金秀瑶族自治县 + 合山市 + + + 13 + + 崇左市 + + 江洲区 + 扶绥县 + 宁明县 + 龙州县 + 大新县 + 天等县 + 凭祥市 + + + + + + 海南省 + + 0 + + 海口市 + + 秀英区 + 龙华区 + 琼山区 + 美兰区 + + + 1 + + 三亚市 + + 三亚市 + + + 2 + + 五指山市 + + 五指山市 + + + 3 + + 儋州市 + + 儋州市 + + + 4 + + 文昌市 + + 文昌市 + + + 5 + + 万宁市 + + 万宁市 + + + 6 + + 东方市 + + 东方市 + + + 7 + + 定安县 + + 定安县 + + + 8 + + 屯昌县 + + 屯昌县 + + + 9 + + 澄迈县 + + 澄迈县 + + + 10 + + 临高县 + + 临高县 + + + 11 + + 白沙黎族自治县 + + 白沙黎族自治县 + + + 12 + + 昌江黎族自治县 + + 昌江黎族自治县 + + + 13 + + 乐东黎族自治县 + + 乐东黎族自治县 + + + 14 + + 陵水黎族自治县 + + 陵水黎族自治县 + + + 15 + + 保亭黎族苗族自治县 + + 保亭黎族苗族自治县 + + + 16 + + 琼中黎族苗族自治县 + + 琼中黎族苗族自治县 + + + 17 + + 西沙群岛 + + 西沙群岛 + + + 18 + + 南沙群岛 + + 南沙群岛 + + + 19 + + 中沙群岛的岛礁及其海域 + + 中沙群岛的岛礁及其海域 + + + + + + 四川省 + + 0 + + 成都市 + + 锦江区 + 青羊区 + 金牛区 + 武侯区 + 成华区 + 龙泉驿区 + 青白江区 + 新都区 + 温江区 + 金堂县 + 双流县 + 郫县 + 大邑县 + 蒲江县 + 新津县 + 都江堰市 + 彭州市 + 邛崃市 + 崇州市 + + + 1 + + 自贡市 + + 自流井区 + 贡井区 + 大安区 + 沿滩区 + 荣县 + 富顺县 + + + 2 + + 攀枝花市 + + 东区 + 西区 + 仁和区 + 米易县 + 盐边县 + + + 3 + + 泸州市 + + 江阳区 + 纳溪区 + 龙马潭区 + 泸县 + 合江县 + 叙永县 + 古蔺县 + + + 4 + + 德阳市 + + 旌阳区 + 中江县 + 罗江县 + 广汉市 + 什邡市 + 绵竹市 + + + 5 + + 绵阳市 + + 涪城区 + 游仙区 + 三台县 + 盐亭县 + 安县 + 梓潼县 + 北川羌族自治县 + 平武县 + 江油市 + + + 6 + + 广元市 + + 市中区 + 元坝区 + 朝天区 + 旺苍县 + 青川县 + 剑阁县 + 苍溪县 + + + 7 + + 遂宁市 + + 船山区 + 安居区 + 蓬溪县 + 射洪县 + 大英县 + + + 8 + + 内江市 + + 市中区 + 东兴区 + 威远县 + 资中县 + 隆昌县 + + + 9 + + 乐山市 + + 市中区 + 沙湾区 + 五通桥区 + 金口河区 + 犍为县 + 井研县 + 夹江县 + 沐川县 + 峨边彝族自治县 + 马边彝族自治县 + 峨眉山市 + + + 10 + + 南充市 + + 顺庆区 + 高坪区 + 嘉陵区 + 南部县 + 营山县 + 蓬安县 + 仪陇县 + 西充县 + 阆中市 + + + 11 + + 眉山市 + + 东坡区 + 仁寿县 + 彭山县 + 洪雅县 + 丹棱县 + 青神县 + + + 12 + + 宜宾市 + + 翠屏区 + 宜宾县 + 南溪县 + 江安县 + 长宁县 + 高县 + 珙县 + 筠连县 + 兴文县 + 屏山县 + + + 13 + + 广安市 + + 广安区 + 岳池县 + 武胜县 + 邻水县 + 华蓥市 + + + 14 + + 达州市 + + 通川区 + 达县 + 宣汉县 + 开江县 + 大竹县 + 渠县 + 万源市 + + + 15 + + 雅安市 + + 雨城区 + 名山县 + 荥经县 + 汉源县 + 石棉县 + 天全县 + 芦山县 + 宝兴县 + + + 16 + + 巴中市 + + 巴州区 + 通江县 + 南江县 + 平昌县 + + + 17 + + 资阳市 + + 雁江区 + 安岳县 + 乐至县 + 简阳市 + + + 18 + + 阿坝藏族羌族自治州 + + 汶川县 + 理县 + 茂县 + 松潘县 + 九寨沟县 + 九寨沟县 + 小金县 + 黑水县 + 马尔康县 + 壤塘县 + 阿坝县 + 若尔盖县 + 红原县 + + + 19 + + 甘孜藏族自治州 + + 康定县 + 泸定县 + 丹巴县 + 九龙县 + 雅江县 + 道孚县 + 炉霍县 + 甘孜县 + 新龙县 + 德格县 + 白玉县 + 石渠县 + 色达县 + 理塘县 + 巴塘县 + 乡城县 + 稻城县 + 得荣县 + + + 20 + + 凉山彝族自治州 + + 西昌市 + 木里藏族自治县 + 盐源县 + 德昌县 + 会理县 + 会东县 + 宁南县 + 普格县 + 布拖县 + 金阳县 + 昭觉县 + 喜德县 + 冕宁县 + 越西县 + 甘洛县 + 美姑县 + 雷波县 + + + + + + 贵州省 + + 0 + + 贵阳市 + + 南明区 + 云岩区 + 花溪区 + 乌当区 + 白云区 + 小河区 + 开阳县 + 息烽县 + 修文县 + 清镇市 + + + 1 + + 六盘水市 + + 钟山区 + 六枝特区 + 水城县 + 盘县 + + + 2 + + 遵义市 + + 红花岗区 + 汇川区 + 遵义县 + 桐梓县 + 绥阳县 + 正安县 + 道真仡佬族苗族自治县 + 务川仡佬族苗族自治县 + 凤冈县 + 湄潭县 + 余庆县 + 习水县 + 赤水市 + 仁怀市 + + + 3 + + 安顺市 + + 西秀区 + 平坝县 + 普定县 + 镇宁布依族苗族自治县 + 关岭布依族苗族自治县 + 紫云苗族布依族自治县 + + + 4 + + 铜仁地区 + + 铜仁市 + 江口县 + 玉屏侗族自治县 + 石阡县 + 思南县 + 印江土家族苗族自治县 + 德江县 + 沿河土家族自治县 + 松桃苗族自治县 + 万山特区 + + + 5 + + 黔西南布依族苗族自治州 + + 兴义市 + 兴仁县 + 普安县 + 晴隆县 + 贞丰县 + 望谟县 + 册亨县 + 安龙县 + + + 6 + + 毕节地区 + + 毕节市 + 大方县 + 黔西县 + 金沙县 + 织金县 + 纳雍县 + 威宁彝族回族苗族自治县 + 赫章县 + + + 7 + + 黔东南苗族侗族自治州 + + 凯里市 + 黄平县 + 施秉县 + 三穗县 + 镇远县 + 岑巩县 + 天柱县 + 锦屏县 + 剑河县 + 台江县 + 黎平县 + 榕江县 + 从江县 + 雷山县 + 麻江县 + 丹寨县 + + + 8 + + 黔南布依族苗族自治州 + + 都匀市 + 福泉市 + 荔波县 + 贵定县 + 瓮安县 + 独山县 + 平塘县 + 罗甸县 + 长顺县 + 龙里县 + 惠水县 + 三都水族自治县 + + + + + + 云南省 + + 0 + + 昆明市 + + 五华区 + 盘龙区 + 官渡区 + 西山区 + 东川区 + 呈贡县 + 晋宁县 + 富民县 + 宜良县 + 石林彝族自治县 + 嵩明县 + 禄劝彝族苗族自治县 + 寻甸回族彝族自治县 + 安宁市 + + + 1 + + 曲靖市 + + 麒麟区 + 马龙县 + 陆良县 + 师宗县 + 罗平县 + 富源县 + 会泽县 + 沾益县 + 宣威市 + + + 2 + + 玉溪市 + + 红塔区 + 江川县 + 澄江县 + 通海县 + 华宁县 + 易门县 + 峨山彝族自治县 + 新平彝族傣族自治县 + 元江哈尼族彝族傣族自治县 + + + 3 + + 保山市 + + 隆阳区 + 施甸县 + 腾冲县 + 龙陵县 + 昌宁县 + + + 4 + + 昭通市 + + 昭阳区 + 鲁甸县 + 巧家县 + 盐津县 + 大关县 + 永善县 + 绥江县 + 镇雄县 + 彝良县 + 威信县 + 水富县 + + + 5 + + 丽江市 + + 古城区 + 玉龙纳西族自治县 + 永胜县 + 华坪县 + 宁蒗彝族自治县 + + + 6 + + 普洱市 + + 思茅区 + 宁洱哈尼族彝族自治县 + 墨江哈尼族自治县 + 景东彝族自治县 + 景谷傣族彝族自治县 + 镇沅彝族哈尼族拉祜族自治县 + 江城哈尼族彝族自治县 + 孟连傣族拉祜族佤族自治县 + 澜沧拉祜族自治县 + 西盟佤族自治县 + + + 7 + + 临沧市 + + 临翔区 + 凤庆县 + 云县 + 永德县 + 镇康县 + 双江拉祜族佤族布朗族傣族自治县 + 耿马傣族佤族自治县 + 沧源佤族自治县 + + + 8 + + 楚雄彝族自治州 + + 楚雄市 + 双柏县 + 牟定县 + 南华县 + 姚安县 + 大姚县 + 永仁县 + 元谋县 + 武定县 + 禄丰县 + + + 9 + + 红河哈尼族彝族自治州 + + 个旧市 + 开远市 + 蒙自县 + 屏边苗族自治县 + 建水县 + 石屏县 + 弥勒县 + 泸西县 + 元阳县 + 红河县 + 金平苗族瑶族傣族自治县 + 绿春县 + 河口瑶族自治县 + + + 10 + + 文山壮族苗族自治州 + + 文山县 + 砚山县 + 西畴县 + 麻栗坡县 + 马关县 + 丘北县 + 广南县 + 富宁县 + + + 11 + + 西双版纳傣族自治州 + + 景洪市 + 勐海县 + 勐腊县 + + + 12 + + 大理白族自治州 + + 大理市 + 漾濞彝族自治县 + 祥云县 + 宾川县 + 弥渡县 + 南涧彝族自治县 + 巍山彝族回族自治县 + 永平县 + 云龙县 + 洱源县 + 剑川县 + 鹤庆县 + + + 13 + + 德宏傣族景颇族自治州 + + 瑞丽市 + 潞西市 + 梁河县 + 盈江县 + 陇川县 + + + 14 + + 怒江傈僳族自治州 + + 泸水县 + 福贡县 + 贡山独龙族怒族自治县 + 兰坪白族普米族自治县 + + + 15 + + 迪庆藏族自治州 + + 香格里拉县 + 德钦县 + 维西傈僳族自治县 + + + + + + 西藏自治区 + + 0 + + 拉萨市 + + 城关区 + 林周县 + 当雄县 + 尼木县 + 曲水县 + 堆龙德庆县 + 达孜县 + 墨竹工卡县 + + + 1 + + 昌都地区 + + 昌都县 + 江达县 + 贡觉县 + 类乌齐县 + 丁青县 + 察雅县 + 八宿县 + 左贡县 + 芒康县 + 洛隆县 + 边坝县 + + + 2 + + 山南地区 + + 乃东县 + 扎囊县 + 贡嘎县 + 桑日县 + 琼结县 + 曲松县 + 措美县 + 洛扎县 + 加查县 + 隆子县 + 错那县 + 浪卡子县 + + + 3 + + 日喀则地区 + + 日喀则市 + 南木林县 + 江孜县 + 定日县 + 萨迦县 + 拉孜县 + 昂仁县 + 谢通门县 + 白朗县 + 仁布县 + 康马县 + 定结县 + 仲巴县 + 亚东县 + 吉隆县 + 聂拉木县 + 萨嘎县 + 岗巴县 + + + 4 + + 那曲地区 + + 那曲县 + 嘉黎县 + 比如县 + 聂荣县 + 安多县 + 申扎县 + 索县 + 班戈县 + 巴青县 + 尼玛县 + + + 5 + + 阿里地区 + + 普兰县 + 札达县 + 噶尔县 + 日土县 + 革吉县 + 改则县 + 措勤县 + + + 6 + + 林芝地区 + + 林芝县 + 工布江达县 + 米林县 + 墨脱县 + 波密县 + 察隅县 + 朗县 + + + + + + 陕西省 + + 0 + + 西安市 + + 新城区 + 碑林区 + 莲湖区 + 灞桥区 + 未央区 + 雁塔区 + 阎良区 + 临潼区 + 长安区 + 蓝田县 + 周至县 + 户县 + 高陵县 + + + 1 + + 铜川市 + + 王益区 + 印台区 + 耀州区 + 宜君县 + + + 2 + + 宝鸡市 + + 太白县 + 凤县 + 麟游县 + 千阳县 + 陇县 + 眉县 + 扶风县 + 岐山县 + 凤翔县 + 陈仓区 + 金台区 + 渭滨区 + + + 3 + + 咸阳市 + + 秦都区 + 杨凌区 + 渭城区 + 三原县 + 泾阳县 + 乾县 + 礼泉县 + 永寿县 + 彬县 + 长武县 + 旬邑县 + 淳化县 + 武功县 + 兴平市 + + + 4 + + 渭南市 + + 临渭区 + 华县 + 潼关县 + 大荔县 + 合阳县 + 澄城县 + 蒲城县 + 白水县 + 富平县 + 韩城市 + 华阴市 + + + 5 + + 延安市 + + 宝塔区 + 延长县 + 延川县 + 子长县 + 安塞县 + 志丹县 + 吴起县 + 甘泉县 + 富县 + 洛川县 + 宜川县 + 黄龙县 + 黄陵县 + + + 6 + + 汉中市 + + 汉台区 + 南郑县 + 城固县 + 洋县 + 西乡县 + 勉县 + 宁强县 + 略阳县 + 镇巴县 + 留坝县 + 佛坪县 + + + 7 + + 榆林市 + + 榆阳区 + 神木县 + 府谷县 + 横山县 + 靖边县 + 定边县 + 绥德县 + 米脂县 + 佳县 + 吴堡县 + 清涧县 + 子洲县 + + + 8 + + 安康市 + + 汉滨区 + 汉阴县 + 石泉县 + 宁陕县 + 紫阳县 + 岚皋县 + 平利县 + 镇坪县 + 旬阳县 + 白河县 + + + 9 + + 白河县 + + 商州区 + 洛南县 + 丹凤县 + 商南县 + 山阳县 + 镇安县 + 柞水县 + + + + + + 甘肃省 + + 0 + + 兰州市 + + 城关区 + 七里河区 + 西固区 + 安宁区 + 红古区 + 永登县 + 皋兰县 + 榆中县 + + + 1 + + 嘉峪关市 + + 嘉峪关市 + + + 2 + + 金昌市 + + 金川区 + 永昌县 + + + 3 + + 白银市 + + 白银区 + 平川区 + 靖远县 + 会宁县 + 景泰县 + + + 4 + + 天水市 + + 秦州区 + 麦积区 + 清水县 + 秦安县 + 甘谷县 + 武山县 + 张家川回族自治县 + + + 5 + + 武威市 + + 凉州区 + 民勤县 + 古浪县 + 天祝藏族自治县 + + + 6 + + 张掖市 + + 甘州区 + 肃南裕固族自治县 + 民乐县 + 临泽县 + 高台县 + 山丹县 + + + 7 + + 平凉市 + + 崆峒区 + 泾川县 + 灵台县 + 崇信县 + 华亭县 + 庄浪县 + 静宁县 + + + 8 + + 酒泉市 + + 肃州区 + 金塔县 + 瓜州县 + 肃北蒙古族自治县 + 阿克塞哈萨克族自治县 + 玉门市 + 敦煌市 + + + 9 + + 庆阳市 + + 西峰区 + 庆城县 + 环县 + 华池县 + 合水县 + 正宁县 + 宁县 + 镇原县 + + + 10 + + 定西市 + + 安定区 + 通渭县 + 陇西县 + 渭源县 + 临洮县 + 漳县 + 岷县 + + + 11 + + 陇南市 + + 武都区 + 成县 + 文县 + 宕昌县 + 康县 + 西和县 + 礼县 + 徽县 + 两当县 + + + 12 + + 临夏回族自治州 + + 临夏市 + 临夏县 + 康乐县 + 永靖县 + 广河县 + 和政县 + 东乡族自治县 + 积石山保安族东乡族撒拉族自治县 + + + 13 + + 甘南藏族自治州 + + 合作市 + 临潭县 + 卓尼县 + 舟曲县 + 迭部县 + 玛曲县 + 碌曲县 + 夏河县 + + + + + + 青海省 + + 0 + + 西宁市 + + 城东区 + 城中区 + 城西区 + 城北区 + 大通回族土族自治县 + 湟中县 + 湟源县 + + + 1 + + 海东地区 + + 平安县 + 民和回族土族自治县 + 乐都县 + 互助土族自治县 + 化隆回族自治县 + 循化撒拉族自治县 + + + 2 + + 海北藏族自治州 + + 门源回族自治县 + 祁连县 + 海晏县 + 刚察县 + + + 3 + + 黄南藏族自治州 + + 同仁县 + 尖扎县 + 泽库县 + 河南蒙古族自治县 + 海南藏族自治州 + 共和县 + 同德县 + 贵德县 + 兴海县 + 贵南县 + + + 4 + + 果洛藏族自治州 + + 玛沁县 + 班玛县 + 甘德县 + 达日县 + 久治县 + 玛多县 + + + 5 + + 玉树藏族自治州 + + 玉树县 + 杂多县 + 称多县 + 治多县 + 囊谦县 + 曲麻莱县 + + + 6 + + 海西蒙古族藏族自治州 + + 格尔木市 + 德令哈市 + 乌兰县 + 都兰县 + 天峻县 + + + + + + 宁夏回族自治区 + + 0 + + 银川市 + + 兴庆区 + 西夏区 + 金凤区 + 永宁县 + 贺兰县 + 灵武市 + + + 1 + + 石嘴山市 + + 大武口区 + 惠农区 + 平罗县 + + + 2 + + 吴忠市 + + 利通区 + 盐池县 + 同心县 + 青铜峡市 + + + 3 + + 固原市 + + 原州区 + 西吉县 + 隆德县 + 泾源县 + 彭阳县 + + + 4 + + 中卫市 + + 沙坡头区 + 中宁县 + 海原县 + + + + + + 新疆维吾尔自治区 + + 0 + + 乌鲁木齐市 + + 天山区 + 沙依巴克区 + 新市区 + 水磨沟区 + 头屯河区 + 达坂城区 + 米东区 + 乌鲁木齐县 + + + 1 + + 克拉玛依市 + + 独山子区 + 克拉玛依区 + 白碱滩区 + 乌尔禾区 + + + 2 + + 吐鲁番地区 + + 吐鲁番市 + 鄯善县 + 托克逊县 + + + 3 + + 哈密地区 + + 哈密市 + 巴里坤哈萨克自治县 + 伊吾县 + + + 4 + + 昌吉回族自治州 + + 昌吉市 + 阜康市 + 呼图壁县 + 玛纳斯县 + 奇台县 + 吉木萨尔县 + 木垒哈萨克自治县 + + + 5 + + 博尔塔拉蒙古自治州 + + 博乐市 + 精河县 + 温泉县 + + + 6 + + 巴音郭楞蒙古自治州 + + 库尔勒市 + 轮台县 + 尉犁县 + 若羌县 + 且末县 + 焉耆回族自治县 + 和静县 + 和硕县 + 博湖县 + + + 7 + + 阿克苏地区 + + 阿克苏市 + 温宿县 + 库车县 + 沙雅县 + 新和县 + 拜城县 + 乌什县 + 阿瓦提县 + 柯坪县 + + + 8 + + 克孜勒苏柯尔克孜自治州 + + 阿图什市 + 阿克陶县 + 阿合奇县 + 乌恰县 + + + 9 + + 喀什地区 + + 喀什市 + 疏附县 + 疏勒县 + 英吉沙县 + 泽普县 + 莎车县 + 叶城县 + 麦盖提县 + 岳普湖县 + 伽师县 + 巴楚县 + 塔什库尔干塔吉克自治县 + + + 10 + + 和田地区 + + 和田市 + 和田县 + 墨玉县 + 皮山县 + 洛浦县 + 策勒县 + 于田县 + 民丰县 + + + 11 + + 伊犁哈萨克自治州 + + 伊宁市 + 奎屯市 + 伊宁县 + 察布查尔锡伯自治县 + 霍城县 + 巩留县 + 新源县 + 昭苏县 + 特克斯县 + 尼勒克县 + + + 12 + + 塔城地区 + + 塔城市 + 乌苏市 + 额敏县 + 沙湾县 + 托里县 + 裕民县 + 和布克赛尔蒙古自治县 + + + 13 + + 阿勒泰地区 + + 阿勒泰市 + 布尔津县 + 富蕴县 + 福海县 + 哈巴河县 + 青河县 + 吉木乃县 + + + 14 + + 石河子市 + + 石河子市 + + + 15 + + 阿拉尔市 + + 阿拉尔市 + + + 16 + + 图木舒克市 + + 图木舒克市 + + + 17 + + 五家渠市 + + 五家渠市 + + + + + + 台湾省 + + 0 + + 台北市 + + 台北市 + + + 1 + + 高雄市 + + 高雄市 + + + 2 + + 基隆市 + + 基隆市 + + + 3 + + 新竹市 + + 新竹市 + + + 4 + + 台中市 + + 台中市 + + + 5 + + 嘉义市 + + 嘉义市 + + + 6 + + 台北县 + + 台北县 + + + 7 + + 宜兰县 + + 宜兰县 + + + 8 + + 桃园县 + + 桃园县 + + + 9 + + 新竹县 + + 新竹县 + + + 10 + + 苗栗县 + + 苗栗县 + + + 11 + + 台中县 + + 台中县 + + + 12 + + 彰化县 + + 彰化县 + + + 13 + + 南投县 + + 南投县 + + + 14 + + 云林县 + + 云林县 + + + 15 + + 嘉义县 + + 嘉义县 + + + 16 + + 台南县 + + 台南县 + + + 17 + + 高雄县 + + 高雄县 + + + 18 + + 屏东县 + + 屏东县 + + + 19 + + 台东县 + + 台东县 + + + 20 + + 花莲县 + + 花莲县 + + + 21 + + 澎湖县 + + 澎湖县 + + + + + + 香港特别行政区 + + 0 + + 香港特别行政区 + + 香港特别行政区 + + + + + + 澳门特别行政区 + + 0 + + 澳门特别行政区 + + 澳门特别行政区 + + + + + + diff --git a/CSPickerView/Frameworks/CSPickerView.bundle/Assets/Address.plist b/CSPickerView/Frameworks/CSPickerView.bundle/Assets/Address.plist new file mode 100755 index 0000000..6d975dc --- /dev/null +++ b/CSPickerView/Frameworks/CSPickerView.bundle/Assets/Address.plist @@ -0,0 +1,5391 @@ + + + + + + 北京市 + + 0 + + 北京市 + + 东城区 + 西城区 + 朝阳区 + 丰台区 + 石景山区 + 海淀区 + 门头沟区 + 房山区 + 通州区 + 顺义区 + 昌平区 + 大兴区 + 怀柔区 + 平谷区 + 密云县 + 延庆县 + + + + + + 天津市 + + 0 + + 天津市 + + 和平区 + 河东区 + 河西区 + 南开区 + 河北区 + 红桥区 + 塘沽区 + 汉沽区 + 大港区 + 东丽区 + 西青区 + 津南区 + 北辰区 + 武清区 + 宝坻区 + 宁河县 + 静海县 + 蓟县 + + + + + + 上海市 + + 0 + + 上海市 + + 黄浦区 + 卢湾区 + 徐汇区 + 长宁区 + 静安区 + 普陀区 + 闸北区 + 虹口区 + 杨浦区 + 闵行区 + 宝山区 + 嘉定区 + 浦东新区 + 金山区 + 松江区 + 青浦区 + 南汇区 + 奉贤区 + 崇明县 + + + + + + 重庆市 + + 0 + + 重庆市 + + 万州区 + 涪陵区 + 渝中区 + 大渡口区 + 江北区 + 沙坪坝区 + 九龙坡区 + 南岸区 + 北碚区 + 万盛区 + 双桥区 + 渝北区 + 巴南区 + 黔江区 + 长寿区 + 江津区 + 合川区 + 永川区 + 南川区 + 綦江县 + 潼南县 + 铜梁县 + 大足县 + 荣昌县 + 璧山县 + 梁平县 + 城口县 + 丰都县 + 垫江县 + 武隆县 + 忠县 + 开县 + 云阳县 + 奉节县 + 巫山县 + 巫溪县 + 石柱土家族自治县 + 秀山土家族苗族自治县 + 酉阳土家族苗族自治县 + 彭水苗族土家族自治县 + + + + + + 河北省 + + 0 + + 石家庄市 + + 长安区 + 桥东区 + 桥西区 + 新华区 + 井陉矿区 + 裕华区 + 井陉县 + 正定县 + 栾城县 + 行唐县 + 灵寿县 + 高邑县 + 深泽县 + 赞皇县 + 无极县 + 平山县 + 元氏县 + 赵县 + 辛集市 + 藁城市 + 晋州市 + 新乐市 + 鹿泉市 + + + 1 + + 唐山市 + + 路南区 + 路北区 + 古冶区 + 开平区 + 丰南区 + 丰润区 + 滦县 + 滦南县 + 乐亭县 + 迁西县 + 玉田县 + 唐海县 + 遵化市 + 迁安市 + + + 2 + + 秦皇岛市 + + 海港区 + 山海关区 + 北戴河区 + 青龙满族自治县 + 昌黎县 + 抚宁县 + 卢龙县 + + + 3 + + 邯郸市 + + 邯山区 + 丛台区 + 复兴区 + 峰峰矿区 + 邯郸县 + 临漳县 + 成安县 + 大名县 + 涉县 + 磁县 + 肥乡县 + 永年县 + 邱县 + 鸡泽县 + 广平县 + 馆陶县 + 魏县 + 曲周县 + 武安市 + + + 4 + + 邢台市 + + 桥东区 + 桥西区 + 邢台县 + 临城县 + 内丘县 + 柏乡县 + 隆尧县 + 任县 + 南和县 + 宁晋县 + 巨鹿县 + 新河县 + 广宗县 + 平乡县 + 威县 + 清河县 + 临西县 + 南宫市 + 沙河市 + + + 5 + + 保定市 + + 新市区 + 北市区 + 南市区 + 满城县 + 清苑县 + 涞水县 + 阜平县 + 徐水县 + 定兴县 + 唐县 + 高阳县 + 容城县 + 涞源县 + 望都县 + 安新县 + 易县 + 曲阳县 + 蠡县 + 顺平县 + 博野县 + 雄县 + 涿州市 + 定州市 + 安国市 + 高碑店市 + + + 6 + + 张家口市 + + 桥东区 + 桥西区 + 宣化区 + 下花园区 + 宣化县 + 张北县 + 康保县 + 沽源县 + 尚义县 + 蔚县 + 阳原县 + 怀安县 + 万全县 + 怀来县 + 涿鹿县 + 赤城县 + 崇礼县 + + + 7 + + 承德市 + + 双桥区 + 双滦区 + 鹰手营子矿区 + 承德县 + 兴隆县 + 平泉县 + 滦平县 + 隆化县 + 丰宁满族自治县 + 宽城满族自治县 + 围场满族蒙古族自治县 + + + 8 + + 沧州市 + + 新华区 + 运河区 + 沧县 + 青县 + 东光县 + 海兴县 + 盐山县 + 肃宁县 + 南皮县 + 吴桥县 + 献县 + 孟村回族自治县 + 泊头市 + 任丘市 + 黄骅市 + 河间市 + + + 9 + + 廊坊市 + + 安次区 + 广阳区 + 固安县 + 永清县 + 香河县 + 大城县 + 文安县 + 大厂回族自治县 + 霸州市 + 三河市 + + + 10 + + 衡水市 + + 桃城区 + 枣强县 + 武邑县 + 武强县 + 饶阳县 + 安平县 + 故城县 + 景县 + 阜城县 + 冀州市 + 深州市 + + + + + + 山西省 + + 0 + + 太原市 + + 小店区 + 迎泽区 + 杏花岭区 + 尖草坪区 + 万柏林区 + 晋源区 + 清徐县 + 阳曲县 + 娄烦县 + 古交市 + + + 1 + + 大同市 + + 城区 + 矿区 + 南郊区 + 新荣区 + 阳高县 + 天镇县 + 广灵县 + 灵丘县 + 浑源县 + 左云县 + 大同县 + + + 2 + + 阳泉市 + + 城区 + 矿区 + 郊区 + 平定县 + 盂县 + + + 3 + + 长治市 + + 城区 + 郊区 + 长治县 + 襄垣县 + 屯留县 +平顺县 + 平顺县 + 黎城县 + 壶关县 + 长子县 + 武乡县 + 沁县 + 沁源县 + 潞城市 + + + 4 + + 晋城市 + + 城区 + 沁水县 + 阳城县 + 陵川县 + 泽州县 + 高平市 + + + 5 + + 朔州市 + + 朔城区 + 平鲁区 + 山阴县 + 应县 + 右玉县 + 怀仁县 + + + 6 + + 晋中市 + + 榆次区 + 榆社县 + 左权县 + 和顺县 + 昔阳县 + 寿阳县 + 太谷县 + 祁县 + 平遥县 + 灵石县 + 介休市 + + + 7 + + 运城市 + + 盐湖区 + 临猗县 + 万荣县 + 闻喜县 + 稷山县 + 新绛县 + 绛县 + 垣曲县 + 夏县 + 平陆县 + 芮城县 + 永济市 + 河津市 + + + 8 + + 忻州市 + + 忻府区 + 定襄县 + 五台县 + 代县 + 繁峙县 + 宁武县 + 静乐县 + 神池县 + 五寨县 + 岢岚县 + 河曲县 + 保德县 + 偏关县 + 原平市 + + + 9 + + 临汾市 + + 尧都区 + 曲沃县 + 翼城县 + 襄汾县 + 洪洞县 + 古县 + 安泽县 + 浮山县 + 吉县 + 乡宁县 + 大宁县 + 隰县 + 永和县 + 蒲县 + 汾西县 + 侯马市 + 霍州市 + + + 10 + + 吕梁市 + + 离石区 + 文水县 + 交城县 + 兴县 + 临县 + 柳林县 + 石楼县 + 岚县 + 方山县 + 中阳县 + 交口县 + 孝义市 + 汾阳市 + + + + + + 内蒙古自治区 + + 0 + + 呼和浩特市 + + 新城区 + 回民区 + 玉泉区 + 赛罕区 + 土默特左旗 + 托克托县 + 和林格尔县 + 清水河县 + 武川县 + + + 1 + + 包头市 + + 东河区 + 昆都仑区 + 青山区 + 石拐区 + 白云鄂博矿区 + 九原区 + 土默特右旗 + 固阳县 + 达尔罕茂明安联合旗 + + + 2 + + 乌海市 + + 海勃湾区 + 海南区 + 乌达区 + + + 3 + + 赤峰市 + + 红山区 + 元宝山区 + 松山区 + 阿鲁科尔沁旗 + 巴林左旗 + 巴林右旗 + 林西县 + 克什克腾旗 + 翁牛特旗 + 喀喇沁旗 + 宁城县 + 敖汉旗 + + + 4 + + 通辽市 + + 科尔沁区 + 科尔沁左翼中旗 + 科尔沁左翼后旗 + 开鲁县 + 库伦旗 + 奈曼旗 + 扎鲁特旗 + 霍林郭勒市 + + + 5 + + 鄂尔多斯市 + + 东胜区 + 达拉特旗 + 准格尔旗 + 鄂托克前旗 + 鄂托克旗 + 杭锦旗 + 乌审旗 + 伊金霍洛旗 + + + 6 + + 呼伦贝尔市 + + 海拉尔区 + 阿荣旗 + 莫力达瓦达斡尔族自治旗 + 鄂伦春自治旗 + 鄂温克族自治旗 + 陈巴尔虎旗 + 新巴尔虎左旗 + 新巴尔虎右旗 + 满洲里市 + 牙克石市 + 扎兰屯市 + 额尔古纳市 + 根河市 + + + 7 + + 巴彦淖尔市 + + 临河区 + 五原县 + 磴口县 + 乌拉特前旗 + 乌拉特中旗 + 乌拉特后旗 + 杭锦后旗 + + + 8 + + 乌兰察布市 + + 集宁区 + 卓资县 + 化德县 + 商都县 + 兴和县 + 凉城县 + 察哈尔右翼前旗 + 察哈尔右翼中旗 + 察哈尔右翼后旗 + 四子王旗 + 丰镇市 + + + 9 + + 兴安盟 + + 乌兰浩特市 + 阿尔山市 + 科尔沁右翼前旗 + 科尔沁右翼中旗 + 扎赉特旗 + 突泉县 + + + 10 + + 锡林郭勒盟 + + 二连浩特市 + 锡林浩特市 + 阿巴嘎旗 + 苏尼特左旗 + 苏尼特右旗 + 东乌珠穆沁旗 + 西乌珠穆沁旗 + 太仆寺旗 + 镶黄旗 + 正镶白旗 + 正蓝旗 + 多伦县 + + + 11 + + 阿拉善盟 + + 阿拉善左旗 + 阿拉善右旗 + 额济纳旗 + + + + + + 辽宁省 + + 0 + + 沈阳市 + + 和平区 + 沈河区 + 大东区 + 皇姑区 + 铁西区 + 苏家屯区 + 东陵区 + 沈北新区 + 于洪区 + 辽中县 + 康平县 + 法库县 + 新民市 + + + 1 + + 大连市 + + 中山区 + 西岗区 + 沙河口区 + 甘井子区 + 旅顺口区 + 金州区 + 长海县 + 瓦房店市 + 普兰店市 + 庄河市 + + + 2 + + 鞍山市 + + 铁东区 + 铁西区 + 立山区 + 千山区 + 台安县 + 岫岩满族自治县 + 海城市 + + + 3 + + 抚顺市 + + 新抚区 + 东洲区 + 望花区 + 顺城区 + 抚顺县 + 新宾满族自治县 + 清原满族自治县 + + + 4 + + 本溪市 + + 平山区 + 溪湖区 + 明山区 + 南芬区 + 本溪满族自治县 + 桓仁满族自治县 + + + 5 + + 丹东市 + + 元宝区 + 振兴区 + 振安区 + 宽甸满族自治县 + 东港市 + 凤城市 + + + 6 + + 锦州市 + + 古塔区 + 凌河区 + 太和区 + 黑山县 + 义县 + 凌海市 + 北镇市 + + + 7 + + 营口市 + + 站前区 + 西市区 + 鲅鱼圈区 + 老边区 + 盖州市 + 大石桥市 + + + 8 + + 阜新市 + + 海州区 + 新邱区 + 太平区 + 清河门区 + 细河区 + 阜新蒙古族自治县 + 彰武县 + + + 9 + + 辽阳市 + + 白塔区 + 文圣区 + 宏伟区 + 弓长岭区 + 太子河区 + 辽阳县 + 灯塔市 + + + 10 + + 盘锦市 + + 双台子区 + 兴隆台区 + 大洼县 + 盘山县 + + + 11 + + 铁岭市 + + 银州区 + 清河区 + 铁岭县 + 西丰县 + 昌图县 + 调兵山市 + 开原市 + + + 12 + + 朝阳市 + + 双塔区 + 龙城区 + 朝阳县 + 建平县 + 喀喇沁左翼蒙古族自治县 + 北票市 + 凌源市 + + + 13 + + 葫芦岛市 + + 连山区 + 龙港区 + 南票区 + 绥中县 + 建昌县 + 兴城市 + + + + + + 吉林省 + + 0 + + 长春市 + + 南关区 + 宽城区 + 朝阳区 + 二道区 + 绿园区 + 双阳区 + 农安县 + 九台市 + 榆树市 + 德惠市 + + + 1 + + 吉林市 + + 昌邑区 + 龙潭区 + 船营区 + 丰满区 + 永吉县 + 蛟河市 + 桦甸市 + 舒兰市 + 磐石市 + + + 2 + + 四平市 + + 铁西区 + 铁东区 + 梨树县 + 伊通满族自治县 + 公主岭市 + 双辽市 + + + 3 + + 辽源市 + + 龙山区 + 西安区 + 东丰县 + 东辽县 + + + 4 + + 通化市 + + 东昌区 + 二道江区 + 通化县 + 辉南县 + 柳河县 + 梅河口市 + 集安市 + + + 5 + + 白山市 + + 八道江区 + 江源区 + 抚松县 + 靖宇县 + 长白朝鲜族自治县 + 临江市 + + + 6 + + 松原市 + + 宁江区 + 前郭尔罗斯蒙古族自治县 + 长岭县 + 乾安县 + 扶余县 + + + 7 + + 白城市 + + 洮北区 + 镇赉县 + 通榆县 + 洮南市 + 大安市 + + + 8 + + 延边朝鲜族自治州 + + 延吉市 + 图们市 + 敦化市 + 珲春市 + 龙井市 + 和龙市 + 汪清县 + 安图县 + + + + + + 黑龙江省 + + 0 + + 哈尔滨市 + + 道里区 + 南岗区 + 道外区 + 平房区 + 松北区 + 香坊区 + 呼兰区 + 阿城区 + 依兰县 + 方正县 + 宾县 + 巴彦县 + 木兰县 + 通河县 + 延寿县 + 双城市 + 尚志市 + 五常市 + + + 1 + + 齐齐哈尔市 + + 龙沙区 + 建华区 + 铁锋区 + 昂昂溪区 + 富拉尔基区 + 碾子山区 + 梅里斯达斡尔族区 + 龙江县 + 依安县 + 泰来县 + 甘南县 + 富裕县 + 克山县 + 克东县 + 拜泉县 + 讷河市 + + + 2 + + 鸡西市 + + 鸡冠区 + 恒山区 + 滴道区 + 梨树区 + 城子河区 + 麻山区 + 鸡东县 + 虎林市 + 密山市 + + + 3 + + 鹤岗市 + + 向阳区 + 工农区 + 南山区 + 兴安区 + 东山区 + 兴山区 + 萝北县 + 绥滨县 + + + 4 + + 双鸭山市 + + 尖山区 + 岭东区 + 四方台区 + 宝山区 + 集贤县 + 友谊县 + 宝清县 + 饶河县 + + + 5 + + 大庆市 + + 萨尔图区 + 龙凤区 + 让胡路区 + 红岗区 + 大同区 + 肇州县 + 肇源县 + 林甸县 + 杜尔伯特蒙古族自治县 + + + 6 + + 伊春市 + + 伊春区 + 南岔区 + 友好区 + 西林区 + 翠峦区 + 新青区 + 美溪区 + 金山屯区 + 五营区 + 乌马河区 + 汤旺河区 + 带岭区 + 乌伊岭区 + 红星区 + 上甘岭区 + 嘉荫县 + 铁力市 + + + 7 + + 佳木斯市 + + 向阳区 + 前进区 + 东风区 + 郊区 + 桦南县 + 桦川县 + 汤原县 + 抚远县 + 同江市 + 富锦市 + + + 8 + + 七台河市 + + 新兴区 + 桃山区 + 茄子河区 + 勃利县 + + + 9 + + 牡丹江市 + + 东安区 + 阳明区 + 爱民区 + 西安区 + 东宁县 + 林口县 + 绥芬河市 + 海林市 + 宁安市 + 穆棱市 + + + 10 + + 黑河市 + + 爱辉区 + 嫩江县 + 逊克县 + 孙吴县 + 北安市 + 五大连池市 + + + 11 + + 绥化市 + + 北林区 + 望奎县 + 兰西县 + 青冈县 + 庆安县 + 明水县 + 绥棱县 + 安达市 + 肇东市 + 海伦市 + + + 12 + + 大兴安岭地区 + + 加格达奇区 + 松岭区 + 新林区 + 呼中区 + 呼玛县 + 塔河县 + 漠河县 + + + + + + 江苏省 + + 0 + + 南京市 + + 玄武区 + 白下区 + 秦淮区 + 建邺区 + 鼓楼区 + 下关区 + 浦口区 + 栖霞区 + 雨花台区 + 江宁区 + 六合区 + 溧水县 + 高淳县 + + + 1 + + 无锡市 + + 崇安区 + 南长区 + 北塘区 + 锡山区 + 惠山区 + 滨湖区 + 江阴市 + 宜兴市 + + + 2 + + 徐州市 + + 鼓楼区 + 云龙区 + 九里区 + 贾汪区 + 泉山区 + 丰县 + 沛县 + 铜山县 + 睢宁县 + 新沂市 + 邳州市 + + + 3 + + 常州市 + + 天宁区 + 钟楼区 + 戚墅堰区 + 新北区 + 武进区 + 溧阳市 + 金坛市 + + + 4 + + 苏州市 + + 沧浪区 + 平江区 + 金阊区 + 虎丘区 + 吴中区 + 相城区 + 常熟市 + 张家港市 + 昆山市 + 吴江市 + 太仓市 + + + 5 + + 南通市 + + 崇川区 + 港闸区 + 海安县 + 如东县 + 启东市 + 如皋市 + 通州市 + 海门市 + + + 6 + + 连云港市 + + 连云区 + 新浦区 + 海州区 + 赣榆县 + 东海县 + 灌云县 + 灌南县 + + + 7 + + 淮安市 + + 清河区 + 楚州区 + 淮阴区 + 清浦区 + 涟水县 + 洪泽县 + 盱眙县 + 金湖县 + + + 8 + + 盐城市 + + 亭湖区 + 盐都区 + 响水县 + 滨海县 + 阜宁县 + 射阳县 + 建湖县 + 东台市 + 大丰市 + + + 9 + + 扬州市 + + 广陵区 + 邗江区 + 维扬区 + 宝应县 + 仪征市 + 高邮市 + 江都市 + + + 10 + + 镇江市 + + 京口区 + 润州区 + 丹徒区 + 丹阳市 + 扬中市 + 句容市 + + + 11 + + 泰州市 + + 海陵区 + 高港区 + 兴化市 + 靖江市 + 泰兴市 + 姜堰市 + + + 12 + + 宿迁市 + + 宿城区 + 宿豫区 + 沭阳县 + 泗阳县 + 泗洪县 + + + + + + 浙江省 + + 0 + + 杭州市 + + 上城区 + 下城区 + 江干区 + 拱墅区 + 西湖区 + 滨江区 + 萧山区 + 余杭区 + 桐庐县 + 淳安县 + 建德市 + 富阳市 + 临安市 + + + 1 + + 宁波市 + + 海曙区 + 江东区 + 江北区 + 北仑区 + 镇海区 + 鄞州区 + 象山县 + 宁海县 + 余姚市 + 慈溪市 + 奉化市 + + + 2 + + 温州市 + + 鹿城区 + 龙湾区 + 瓯海区 + 洞头县 + 永嘉县 + 平阳县 + 苍南县 + 文成县 + 泰顺县 + 瑞安市 + 乐清市 + + + 3 + + 嘉兴市 + + 南湖区 + 秀洲区 + 嘉善县 + 海盐县 + 海宁市 + 平湖市 + 桐乡市 + + + 4 + + 湖州市 + + 吴兴区 + 南浔区 + 德清县 + 长兴县 + 安吉县 + + + 5 + + 绍兴市 + + 越城区 + 绍兴县 + 新昌县 + 诸暨市 + 上虞市 + 嵊州市 + + + 6 + + 金华市 + + 婺城区 + 金东区 + 武义县 + 浦江县 + 磐安县 + 兰溪市 + 义乌市 + 东阳市 + 永康市 + + + 7 + + 衢州市 + + 柯城区 + 衢江区 + 常山县 + 开化县 + 龙游县 + 江山市 + + + 8 + + 舟山市 + + 定海区 + 普陀区 + 岱山县 + 嵊泗县 + + + 9 + + 台州市 + + 椒江区 + 黄岩区 + 路桥区 + 玉环县 + 三门县 + 天台县 + 仙居县 + 温岭市 + 临海市 + + + 10 + + 丽水市 + + 莲都区 + 青田县 + 缙云县 + 遂昌县 + 松阳县 + 云和县 + 庆元县 + 景宁畲族自治县 + 龙泉市 + + + + + + 安徽省 + + 0 + + 合肥市 + + 瑶海区 + 庐阳区 + 蜀山区 + 包河区 + 长丰县 + 肥东县 + 肥西县 + + + 1 + + 芜湖市 + + 镜湖区 + 弋江区 + 鸠江区 + 三山区 + 芜湖县 + 繁昌县 + 南陵县 + + + 2 + + 蚌埠市 + + 龙子湖区 + 蚌山区 + 禹会区 + 淮上区 + 怀远县 + 五河县 + 固镇县 + + + 3 + + 淮南市 + + 大通区 + 田家庵区 + 谢家集区 + 八公山区 + 潘集区 + 凤台县 + + + 4 + + 马鞍山市 + + 金家庄区 + 花山区 + 雨山区 + 当涂县 + + + 5 + + 淮北市 + + 杜集区 + 相山区 + 烈山区 + 濉溪县 + + + 6 + + 铜陵市 + + 铜官山区 + 狮子山区 + 郊区 + 铜陵县 + + + 7 + + 安庆市 + + 迎江区 + 大观区 + 宜秀区 + 怀宁县 + 枞阳县 + 潜山县 + 太湖县 + 宿松县 + 望江县 + 岳西县 + 桐城市 + + + 8 + + 黄山市 + + 屯溪区 + 黄山区 + 徽州区 + 歙县 + 休宁县 + 黟县 + 祁门县 + + + 9 + + 滁州市 + + 琅琊区 + 南谯区 + 来安县 + 全椒县 + 定远县 + 凤阳县 + 天长市 + 明光市 + + + 10 + + 阜阳市 + + 颍州区 + 颍东区 + 颍泉区 + 临泉县 + 太和县 + 阜南县 + 颍上县 + 界首市 + + + 11 + + 宿州市 + + 埇桥区 + 砀山县 + 萧县 + 灵璧县 + 泗县 + + + 12 + + 巢湖市 + + 居巢区 + 庐江县 + 无为县 + 含山县 + 和县 + + + 13 + + 六安市 + + 金安区 + 裕安区 + 寿县 + 霍邱县 + 舒城县 + 金寨县 + 霍山县 + + + 14 + + 亳州市 + + 谯城区 + 涡阳县 + 蒙城县 + 利辛县 + + + 15 + + 池州市 + + 贵池区 + 东至县 + 石台县 + 青阳县 + + + 16 + + 宣城市 + + 宣州区 + 郎溪县 + 广德县 + 泾县 + 绩溪县 + 旌德县 + 宁国市 + + + + + + 福建省 + + 0 + + 福州市 + + 鼓楼区 + 台江区 + 仓山区 + 马尾区 + 晋安区 + 闽侯县 + 连江县 + 罗源县 + 闽清县 + 永泰县 + 平潭县 + 福清市 + 长乐市 + + + 1 + + 厦门市 + + 思明区 + 海沧区 + 湖里区 + 集美区 + 同安区 + 翔安区 + + + 2 + + 莆田市 + + 城厢区 + 涵江区 + 荔城区 + 秀屿区 + 仙游县 + + + 3 + + 三明市 + + 梅列区 + 三元区 + 明溪县 + 清流县 + 宁化县 + 大田县 + 尤溪县 + 沙县 + 将乐县 + 泰宁县 + 建宁县 + 永安市 + + + 4 + + 泉州市 + + 鲤城区 + 丰泽区 + 洛江区 + 泉港区 + 惠安县 + 安溪县 + 永春县 + 德化县 + 金门县 + 石狮市 + 晋江市 + 南安市 + + + 5 + + 漳州市 + + 芗城区 + 龙文区 + 云霄县 + 漳浦县 + 诏安县 + 长泰县 + 东山县 + 南靖县 + 平和县 + 华安县 + 龙海市 + + + 6 + + 南平市 + + 延平区 + 顺昌县 + 浦城县 + 光泽县 + 松溪县 + 政和县 + 邵武市 + 武夷山市 + 建瓯市 + 建阳市 + + + 7 + + 龙岩市 + + 新罗区 + 长汀县 + 永定县 + 上杭县 + 武平县 + 连城县 + 漳平市 + + + 8 + + 宁德市 + + 蕉城区 + 霞浦县 + 古田县 + 屏南县 + 寿宁县 + 周宁县 + 柘荣县 + 福安市 + 福鼎市 + + + + + + 江西省 + + 0 + + 南昌市 + + 东湖区 + 西湖区 + 青云谱区 + 湾里区 + 青山湖区 + 南昌县 + 新建县 + 安义县 + 进贤县 + + + 1 + + 景德镇市 + + 昌江区 + 珠山区 + 浮梁县 + 乐平市 + + + 2 + + 萍乡市 + + 安源区 + 湘东区 + 莲花县 + 上栗县 + 芦溪县 + + + 3 + + 九江市 + + 庐山区 + 浔阳区 + 九江县 + 武宁县 + 修水县 + 永修县 + 德安县 + 星子县 + 都昌县 + 湖口县 + 彭泽县 + 瑞昌市 + + + 4 + + 新余市 + + 渝水区 + 分宜县 + + + 5 + + 鹰潭市 + + 月湖区 + 余江县 + 贵溪市 + + + 6 + + 赣州市 + + 章贡区 + 赣县 + 信丰县 + 大余县 + 上犹县 + 崇义县 + 安远县 + 龙南县 + 定南县 + 全南县 + 宁都县 + 于都县 + 兴国县 + 会昌县 + 寻乌县 + 石城县 + 瑞金市 + 南康市 + + + 7 + + 吉安市 + + 吉州区 + 青原区 + 吉安县 + 吉水县 + 峡江县 + 新干县 + 永丰县 + 泰和县 + 遂川县 + 万安县 + 安福县 + 永新县 + 井冈山市 + + + 8 + + 宜春市 + + 袁州区 + 奉新县 + 万载县 + 上高县 + 宜丰县 + 靖安县 + 铜鼓县 + 丰城市 + 樟树市 + 高安市 + + + 9 + + 抚州市 + + 临川区 + 南城县 + 黎川县 + 南丰县 + 崇仁县 + 乐安县 + 宜黄县 + 金溪县 + 资溪县 + 东乡县 + 广昌县 + + + 10 + + 上饶市 + + 信州区 + 上饶县 + 广丰县 + 玉山县 + 铅山县 + 横峰县 + 弋阳县 + 余干县 + 鄱阳县 + 万年县 + 婺源县 + 德兴市 + + + + + + 山东省 + + 0 + + 济南市 + + 历下区 + 市中区 + 槐荫区 + 天桥区 + 历城区 + 长清区 + 平阴县 + 济阳县 + 商河县 + 章丘市 + + + 1 + + 青岛市 + + 市南区 + 市北区 + 四方区 + 黄岛区 + 崂山区 + 李沧区 + 城阳区 + 胶州市 + 即墨市 + 平度市 + 胶南市 + 莱西市 + + + 2 + + 淄博市 + + 淄川区 + 张店区 + 博山区 + 临淄区 + 周村区 + 桓台县 + 高青县 + 沂源县 + + + 3 + + 枣庄市 + + 市中区 + 薛城区 + 峄城区 + 台儿庄区 + 山亭区 + 滕州市 + + + 4 + + 东营市 + + 东营区 + 河口区 + 垦利县 + 利津县 + 广饶县 + + + 5 + + 烟台市 + + 芝罘区 + 福山区 + 牟平区 + 莱山区 + 长岛县 + 龙口市 + 莱阳市 + 莱州市 + 蓬莱市 + 招远市 + 栖霞市 + 海阳市 + + + 6 + + 潍坊市 + + 潍城区 + 寒亭区 + 坊子区 + 奎文区 + 临朐县 + 昌乐县 + 青州市 + 诸城市 + 寿光市 + 安丘市 + 高密市 + 昌邑市 + + + 7 + + 济宁市 + + 市中区 + 任城区 + 微山县 + 鱼台县 + 金乡县 + 嘉祥县 + 汶上县 + 泗水县 + 梁山县 + 曲阜市 + 兖州市 + 邹城市 + + + 8 + + 泰安市 + + 泰山区 + 岱岳区 + 宁阳县 + 东平县 + 新泰市 + 肥城市 + + + 9 + + 威海市 + + 环翠区 + 文登市 + 荣成市 + 乳山市 + + + 10 + + 日照市 + + 东港区 + 岚山区 + 五莲县 + 莒县 + + + 11 + + 莱芜市 + + 莱城区 + 钢城区 + + + 12 + + 临沂市 + + 兰山区 + 罗庄区 + 河东区 + 沂南县 + 郯城县 + 沂水县 + 苍山县 + 费县 + 平邑县 + 莒南县 + 蒙阴县 + 临沭县 + + + 13 + + 德州市 + + 德城区 + 陵县 + 宁津县 + 庆云县 + 临邑县 + 齐河县 + 平原县 + 夏津县 + 武城县 + 乐陵市 + 禹城市 + + + 14 + + 聊城市 + + 东昌府区 + 阳谷县 + 莘县 + 茌平县 + 东阿县 + 冠县 + 高唐县 + 临清市 + + + 15 + + 滨州市 + + 滨城区 + 惠民县 + 阳信县 + 无棣县 + 沾化县 + 博兴县 + 邹平县 + + + 16 + + 菏泽市 + + 牡丹区 + 曹县 + 单县 + 成武县 + 巨野县 + 郓城县 + 鄄城县 + 定陶县 + 东明县 + + + + + + 河南省 + + 0 + + 郑州市 + + 中原区 + 二七区 + 管城回族区 + 金水区 + 上街区 + 惠济区 + 中牟县 + 巩义市 + 荥阳市 + 新密市 + 新郑市 + 登封市 + + + 1 + + 开封市 + + 龙亭区 + 顺河回族区 + 鼓楼区 + 禹王台区 + 金明区 + 杞县 + 通许县 + 尉氏县 + 开封县 + 兰考县 + + + 2 + + 洛阳市 + + 老城区 + 西工区 + 瀍河回族区 + 涧西区 + 吉利区 + 洛龙区 + 孟津县 + 新安县 + 栾川县 + 嵩县 + 汝阳县 + 宜阳县 + 洛宁县 + 伊川县 + 偃师市 + + + 3 + + 平顶山市 + + 新华区 + 卫东区 + 石龙区 + 湛河区 + 宝丰县 + 叶县 + 鲁山县 + 郏县 + 舞钢市 + 汝州市 + + + 4 + + 安阳市 + + 文峰区 + 北关区 + 殷都区 + 龙安区 + 安阳县 + 汤阴县 + 滑县 + 内黄县 + 林州市 + + + 5 + + 鹤壁市 + + 鹤山区 + 山城区 + 淇滨区 + 浚县 + 淇县 + + + 6 + + 新乡市 + + 红旗区 + 卫滨区 + 凤泉区 + 牧野区 + 新乡县 + 获嘉县 + 原阳县 + 延津县 + 封丘县 + 长垣县 + 卫辉市 + 辉县市 + + + 7 + + 焦作市 + + 解放区 + 中站区 + 马村区 + 山阳区 + 修武县 + 博爱县 + 武陟县 + 温县 + 沁阳市 + 孟州市 + + + 8 + + 濮阳市 + + 华龙区 + 清丰县 + 南乐县 + 范县 + 台前县 + 濮阳县 + + + 9 + + 许昌市 + + 魏都区 + 许昌县 + 鄢陵县 + 襄城县 + 禹州市 + 长葛市 + + + 10 + + 漯河市 + + 源汇区 + 郾城区 + 召陵区 + 舞阳县 + 临颍县 + + + 11 + + 三门峡市 + + 湖滨区 + 渑池县 + 陕县 + 卢氏县 + 义马市 + 灵宝市 + + + 12 + + 南阳市 + + 宛城区 + 卧龙区 + 南召县 + 方城县 + 西峡县 + 镇平县 + 内乡县 + 淅川县 + 社旗县 + 唐河县 + 新野县 + 桐柏县 + 邓州市 + + + 13 + + 商丘市 + + 梁园区 + 睢阳区 + 民权县 + 睢县 + 宁陵县 + 柘城县 + 虞城县 + 夏邑县 + 永城市 + + + 14 + + 信阳市 + + 浉河区 + 平桥区 + 罗山县 + 光山县 + 新县 + 商城县 + 固始县 + 潢川县 + 淮滨县 + 息县 + + + 15 + + 周口市 + + 川汇区 + 扶沟县 + 西华县 + 商水县 + 沈丘县 + 郸城县 + 淮阳县 + 太康县 + 鹿邑县 + 项城市 + + + 16 + + 驻马店市 + + 驿城区 + 西平县 + 上蔡县 + 平舆县 + 正阳县 + 确山县 + 泌阳县 + 汝南县 + 遂平县 + 新蔡县 + + + 17 + + 济源市 + + 济源市 + + + + + + 湖北省 + + 0 + + 武汉市 + + 江岸区 + 江汉区 + 硚口区 + 汉阳区 + 武昌区 + 青山区 + 洪山区 + 东西湖区 + 汉南区 + 蔡甸区 + 江夏区 + 黄陂区 + 新洲区 + + + 1 + + 黄石市 + + 黄石港区 + 西塞山区 + 下陆区 + 铁山区 + 阳新县 + 大冶市 + + + 2 + + 十堰市 + + 茅箭区 + 张湾区 + 郧县 + 郧西县 + 竹山县 + 竹溪县 + 房县 + 丹江口市 + + + 3 + + 宜昌市 + + 西陵区 + 伍家岗区 + 点军区 + 猇亭区 + 夷陵区 + 远安县 + 兴山县 + 秭归县 + 长阳土家族自治县 + 五峰土家族自治县 + 宜都市 + 当阳市 + 枝江市 + + + 4 + + 襄樊市 + + 襄城区 + 樊城区 + 襄阳区 + 南漳县 + 谷城县 + 保康县 + 老河口市 + 枣阳市 + 宜城市 + + + 5 + + 鄂州市 + + 梁子湖区 + 华容区 + 鄂城区 + + + 6 + + 荆门市 + + 东宝区 + 掇刀区 + 京山县 + 沙洋县 + 钟祥市 + + + 7 + + 孝感市 + + 孝南区 + 孝昌县 + 大悟县 + 云梦县 + 应城市 + 安陆市 + 汉川市 + + + 8 + + 荆州市 + + 沙市区 + 荆州区 + 公安县 + 监利县 + 江陵县 + 石首市 + 洪湖市 + 松滋市 + + + 9 + + 黄冈市 + + 黄州区 + 团风县 + 红安县 + 罗田县 + 英山县 + 浠水县 + 蕲春县 + 黄梅县 + 麻城市 + 武穴市 + + + 10 + + 咸宁市 + + 咸安区 + 嘉鱼县 + 通城县 + 崇阳县 + 通山县 + 赤壁市 + + + 11 + + 随州市 + + 曾都区 + 广水市 + + + 12 + + 恩施土家族苗族自治州 + + 恩施市 + 利川市 + 建始县 + 巴东县 + 宣恩县 + 咸丰县 + 来凤县 + 鹤峰县 + + + 13 + + 仙桃市 + + 仙桃市 + + + 14 + + 潜江市 + + 潜江市 + + + 15 + + 天门市 + + 天门市 + + + 16 + + 神农架林区 + + 神农架林区 + + + + + + 湖南省 + + 0 + + 长沙市 + + 芙蓉区 + 天心区 + 岳麓区 + 开福区 + 雨花区 + 长沙县 + 望城县 + 宁乡县 + 浏阳市 + + + 1 + + 株洲市 + + 荷塘区 + 芦淞区 + 石峰区 + 天元区 + 株洲县 + 攸县 + 茶陵县 + 炎陵县 + 醴陵市 + + + 2 + + 湘潭市 + + 雨湖区 + 岳塘区 + 湘潭县 + 湘乡市 + 韶山市 + + + 3 + + 衡阳市 + + 珠晖区 + 雁峰区 + 石鼓区 + 蒸湘区 + 南岳区 + 衡阳县 + 衡南县 + 衡山县 + 衡东县 + 祁东县 + 耒阳市 + 常宁市 + + + 4 + + 邵阳市 + + 双清区 + 大祥区 + 北塔区 + 邵东县 + 新邵县 + 邵阳县 + 隆回县 + 洞口县 + 绥宁县 + 新宁县 + 城步苗族自治县 + 武冈市 + + + 5 + + 岳阳市 + + 岳阳楼区 + 云溪区 + 君山区 + 岳阳县 + 华容县 + 湘阴县 + 平江县 + 汨罗市 + 临湘市 + + + 6 + + 常德市 + + 武陵区 + 鼎城区 + 安乡县 + 汉寿县 + 澧县 + 临澧县 + 桃源县 + 石门县 + 津市市 + + + 7 + + 张家界市 + + 永定区 + 武陵源区 + 慈利县 + 桑植县 + + + 8 + + 益阳市 + + 资阳区 + 赫山区 + 南县 + 桃江县 + 安化县 + 沅江市 + + + 9 + + 郴州市 + + 北湖区 + 苏仙区 + 桂阳县 + 宜章县 + 永兴县 + 嘉禾县 + 临武县 + 汝城县 + 桂东县 + 安仁县 + 资兴市 + + + 10 + + 永州市 + + 零陵区 + 冷水滩区 + 祁阳县 + 东安县 + 双牌县 + 道县 + 江永县 + 宁远县 + 蓝山县 + 新田县 + 江华瑶族自治县 + + + 11 + + 怀化市 + + 鹤城区 + 中方县 + 沅陵县 + 辰溪县 + 溆浦县 + 会同县 + 麻阳苗族自治县 + 新晃侗族自治县 + 芷江侗族自治县 + 靖州苗族侗族自治县 + 通道侗族自治县 + 洪江市 + + + 12 + + 娄底市 + + 娄星区 + 双峰县 + 新化县 + 冷水江市 + 涟源市 + + + 13 + + 湘西土家族苗族自治州 + + 吉首市 + 泸溪县 + 凤凰县 + 花垣县 + 保靖县 + 古丈县 + 永顺县 + 龙山县 + + + + + + 广东省 + + 0 + + 广州市 + + 荔湾区 + 越秀区 + 海珠区 + 天河区 + 白云区 + 黄埔区 + 番禺区 + 花都区 + 南沙区 + 萝岗区 + 增城市 + 从化市 + + + 1 + + 韶关市 + + 武江区 + 浈江区 + 曲江区 + 始兴县 + 仁化县 + 翁源县 + 乳源瑶族自治县 + 新丰县 + 乐昌市 + 南雄市 + + + 2 + + 深圳市 + + 罗湖区 + 福田区 + 南山区 + 宝安区 + 龙岗区 + 盐田区 + + + 3 + + 珠海市 + + 香洲区 + 斗门区 + 金湾区 + + + 4 + + 汕头市 + + 龙湖区 + 金平区 + 濠江区 + 潮阳区 + 潮南区 + 澄海区 + 南澳县 + + + 5 + + 佛山市 + + 禅城区 + 南海区 + 顺德区 + 三水区 + 高明区 + + + 6 + + 江门市 + + 蓬江区 + 江海区 + 新会区 + 台山市 + 开平市 + 鹤山市 + 恩平市 + + + 7 + + 湛江市 + + 赤坎区 + 霞山区 + 坡头区 + 麻章区 + 遂溪县 + 徐闻县 + 廉江市 + 雷州市 + 吴川市 + + + 8 + + 茂名市 + + 茂南区 + 茂港区 + 电白县 + 高州市 + 化州市 + 信宜市 + + + 9 + + 肇庆市 + + 端州区 + 鼎湖区 + 广宁县 + 怀集县 + 封开县 + 德庆县 + 高要市 + 四会市 + + + 10 + + 惠州市 + + 惠城区 + 惠阳区 + 博罗县 + 惠东县 + 龙门县 + + + 11 + + 梅州市 + + 梅江区 + 梅县 + 大埔县 + 丰顺县 + 五华县 + 平远县 + 蕉岭县 + 兴宁市 + + + 12 + + 汕尾市 + + 城区 + 海丰县 + 陆河县 + 陆丰市 + + + 13 + + 河源市 + + 源城区 + 紫金县 + 龙川县 + 连平县 + 和平县 + 东源县 + + + 14 + + 阳江市 + + 江城区 + 阳西县 + 阳东县 + 阳春市 + + + 15 + + 清远市 + + 清城区 + 佛冈县 + 阳山县 + 连山壮族瑶族自治县 + 连南瑶族自治县 + 清新县 + 英德市 + 连州市 + + + 16 + + 东莞市 + + 东莞市 + + + 17 + + 中山市 + + 中山市 + + + 18 + + 潮州市 + + 湘桥区 + 潮安县 + 饶平县 + + + 19 + + 揭阳市 + + 榕城区 + 揭东县 + 揭西县 + 惠来县 + 普宁市 + + + 20 + + 云浮市 + + 云城区 + 新兴县 + 郁南县 + 云安县 + 罗定市 + + + + + + 广西壮族自治区 + + 0 + + 南宁市 + + 兴宁区 + 青秀区 + 江南区 + 西乡塘区 + 良庆区 + 邕宁区 + 武鸣县 + 隆安县 + 马山县 + 上林县 + 宾阳县 + 横县 + + + 1 + + 柳州市 + + 城中区 + 鱼峰区 + 柳南区 + 柳北区 + 柳江县 + 柳城县 + 鹿寨县 + 融安县 + 融水苗族自治县 + 三江侗族自治县 + + + 2 + + 桂林市 + + 秀峰区 + 叠彩区 + 象山区 + 七星区 + 雁山区 + 阳朔县 + 临桂县 + 灵川县 + 全州县 + 兴安县 + 永福县 + 灌阳县 + 龙胜各族自治县 + 资源县 + 平乐县 + 荔浦县 + 恭城瑶族自治县 + + + 3 + + 梧州市 + + 万秀区 + 蝶山区 + 长洲区 + 苍梧县 + 藤县 + 蒙山县 + 岑溪市 + + + 4 + + 北海市 + + 海城区 + 银海区 + 铁山港区 + 合浦县 + + + 5 + + 防城港市 + + 港口区 + 防城区 + 上思县 + 东兴市 + + + 6 + + 钦州市 + + 钦南区 + 钦北区 + 灵山县 + 浦北县 + + + 7 + + 贵港市 + + 港北区 + 港南区 + 覃塘区 + 平南县 + 桂平市 + + + 8 + + 玉林市 + + 玉州区 + 容县 + 陆川县 + 博白县 + 兴业县 + 北流市 + + + 9 + + 百色市 + + 右江区 + 田阳县 + 田东县 + 平果县 + 德保县 + 靖西县 + 那坡县 + 凌云县 + 乐业县 + 田林县 + 西林县 + 隆林各族自治县 + + + 10 + + 贺州市 + + 八步区 + 昭平县 + 钟山县 + 富川瑶族自治县 + + + 11 + + 河池市 + + 金城江区 + 南丹县 + 天峨县 + 凤山县 + 东兰县 + 罗城仫佬族自治县 + 环江毛南族自治县 + 巴马瑶族自治县 + 都安瑶族自治县 + 大化瑶族自治县 + 宜州市 + + + 12 + + 来宾市 + + 兴宾区 + 忻城县 + 象州县 + 武宣县 + 金秀瑶族自治县 + 合山市 + + + 13 + + 崇左市 + + 江洲区 + 扶绥县 + 宁明县 + 龙州县 + 大新县 + 天等县 + 凭祥市 + + + + + + 海南省 + + 0 + + 海口市 + + 秀英区 + 龙华区 + 琼山区 + 美兰区 + + + 1 + + 三亚市 + + 三亚市 + + + 2 + + 五指山市 + + 五指山市 + + + 3 + + 儋州市 + + 儋州市 + + + 4 + + 文昌市 + + 文昌市 + + + 5 + + 万宁市 + + 万宁市 + + + 6 + + 东方市 + + 东方市 + + + 7 + + 定安县 + + 定安县 + + + 8 + + 屯昌县 + + 屯昌县 + + + 9 + + 澄迈县 + + 澄迈县 + + + 10 + + 临高县 + + 临高县 + + + 11 + + 白沙黎族自治县 + + 白沙黎族自治县 + + + 12 + + 昌江黎族自治县 + + 昌江黎族自治县 + + + 13 + + 乐东黎族自治县 + + 乐东黎族自治县 + + + 14 + + 陵水黎族自治县 + + 陵水黎族自治县 + + + 15 + + 保亭黎族苗族自治县 + + 保亭黎族苗族自治县 + + + 16 + + 琼中黎族苗族自治县 + + 琼中黎族苗族自治县 + + + 17 + + 西沙群岛 + + 西沙群岛 + + + 18 + + 南沙群岛 + + 南沙群岛 + + + 19 + + 中沙群岛的岛礁及其海域 + + 中沙群岛的岛礁及其海域 + + + + + + 四川省 + + 0 + + 成都市 + + 锦江区 + 青羊区 + 金牛区 + 武侯区 + 成华区 + 龙泉驿区 + 青白江区 + 新都区 + 温江区 + 金堂县 + 双流县 + 郫县 + 大邑县 + 蒲江县 + 新津县 + 都江堰市 + 彭州市 + 邛崃市 + 崇州市 + + + 1 + + 自贡市 + + 自流井区 + 贡井区 + 大安区 + 沿滩区 + 荣县 + 富顺县 + + + 2 + + 攀枝花市 + + 东区 + 西区 + 仁和区 + 米易县 + 盐边县 + + + 3 + + 泸州市 + + 江阳区 + 纳溪区 + 龙马潭区 + 泸县 + 合江县 + 叙永县 + 古蔺县 + + + 4 + + 德阳市 + + 旌阳区 + 中江县 + 罗江县 + 广汉市 + 什邡市 + 绵竹市 + + + 5 + + 绵阳市 + + 涪城区 + 游仙区 + 三台县 + 盐亭县 + 安县 + 梓潼县 + 北川羌族自治县 + 平武县 + 江油市 + + + 6 + + 广元市 + + 市中区 + 元坝区 + 朝天区 + 旺苍县 + 青川县 + 剑阁县 + 苍溪县 + + + 7 + + 遂宁市 + + 船山区 + 安居区 + 蓬溪县 + 射洪县 + 大英县 + + + 8 + + 内江市 + + 市中区 + 东兴区 + 威远县 + 资中县 + 隆昌县 + + + 9 + + 乐山市 + + 市中区 + 沙湾区 + 五通桥区 + 金口河区 + 犍为县 + 井研县 + 夹江县 + 沐川县 + 峨边彝族自治县 + 马边彝族自治县 + 峨眉山市 + + + 10 + + 南充市 + + 顺庆区 + 高坪区 + 嘉陵区 + 南部县 + 营山县 + 蓬安县 + 仪陇县 + 西充县 + 阆中市 + + + 11 + + 眉山市 + + 东坡区 + 仁寿县 + 彭山县 + 洪雅县 + 丹棱县 + 青神县 + + + 12 + + 宜宾市 + + 翠屏区 + 宜宾县 + 南溪县 + 江安县 + 长宁县 + 高县 + 珙县 + 筠连县 + 兴文县 + 屏山县 + + + 13 + + 广安市 + + 广安区 + 岳池县 + 武胜县 + 邻水县 + 华蓥市 + + + 14 + + 达州市 + + 通川区 + 达县 + 宣汉县 + 开江县 + 大竹县 + 渠县 + 万源市 + + + 15 + + 雅安市 + + 雨城区 + 名山县 + 荥经县 + 汉源县 + 石棉县 + 天全县 + 芦山县 + 宝兴县 + + + 16 + + 巴中市 + + 巴州区 + 通江县 + 南江县 + 平昌县 + + + 17 + + 资阳市 + + 雁江区 + 安岳县 + 乐至县 + 简阳市 + + + 18 + + 阿坝藏族羌族自治州 + + 汶川县 + 理县 + 茂县 + 松潘县 + 九寨沟县 + 九寨沟县 + 小金县 + 黑水县 + 马尔康县 + 壤塘县 + 阿坝县 + 若尔盖县 + 红原县 + + + 19 + + 甘孜藏族自治州 + + 康定县 + 泸定县 + 丹巴县 + 九龙县 + 雅江县 + 道孚县 + 炉霍县 + 甘孜县 + 新龙县 + 德格县 + 白玉县 + 石渠县 + 色达县 + 理塘县 + 巴塘县 + 乡城县 + 稻城县 + 得荣县 + + + 20 + + 凉山彝族自治州 + + 西昌市 + 木里藏族自治县 + 盐源县 + 德昌县 + 会理县 + 会东县 + 宁南县 + 普格县 + 布拖县 + 金阳县 + 昭觉县 + 喜德县 + 冕宁县 + 越西县 + 甘洛县 + 美姑县 + 雷波县 + + + + + + 贵州省 + + 0 + + 贵阳市 + + 南明区 + 云岩区 + 花溪区 + 乌当区 + 白云区 + 小河区 + 开阳县 + 息烽县 + 修文县 + 清镇市 + + + 1 + + 六盘水市 + + 钟山区 + 六枝特区 + 水城县 + 盘县 + + + 2 + + 遵义市 + + 红花岗区 + 汇川区 + 遵义县 + 桐梓县 + 绥阳县 + 正安县 + 道真仡佬族苗族自治县 + 务川仡佬族苗族自治县 + 凤冈县 + 湄潭县 + 余庆县 + 习水县 + 赤水市 + 仁怀市 + + + 3 + + 安顺市 + + 西秀区 + 平坝县 + 普定县 + 镇宁布依族苗族自治县 + 关岭布依族苗族自治县 + 紫云苗族布依族自治县 + + + 4 + + 铜仁地区 + + 铜仁市 + 江口县 + 玉屏侗族自治县 + 石阡县 + 思南县 + 印江土家族苗族自治县 + 德江县 + 沿河土家族自治县 + 松桃苗族自治县 + 万山特区 + + + 5 + + 黔西南布依族苗族自治州 + + 兴义市 + 兴仁县 + 普安县 + 晴隆县 + 贞丰县 + 望谟县 + 册亨县 + 安龙县 + + + 6 + + 毕节地区 + + 毕节市 + 大方县 + 黔西县 + 金沙县 + 织金县 + 纳雍县 + 威宁彝族回族苗族自治县 + 赫章县 + + + 7 + + 黔东南苗族侗族自治州 + + 凯里市 + 黄平县 + 施秉县 + 三穗县 + 镇远县 + 岑巩县 + 天柱县 + 锦屏县 + 剑河县 + 台江县 + 黎平县 + 榕江县 + 从江县 + 雷山县 + 麻江县 + 丹寨县 + + + 8 + + 黔南布依族苗族自治州 + + 都匀市 + 福泉市 + 荔波县 + 贵定县 + 瓮安县 + 独山县 + 平塘县 + 罗甸县 + 长顺县 + 龙里县 + 惠水县 + 三都水族自治县 + + + + + + 云南省 + + 0 + + 昆明市 + + 五华区 + 盘龙区 + 官渡区 + 西山区 + 东川区 + 呈贡县 + 晋宁县 + 富民县 + 宜良县 + 石林彝族自治县 + 嵩明县 + 禄劝彝族苗族自治县 + 寻甸回族彝族自治县 + 安宁市 + + + 1 + + 曲靖市 + + 麒麟区 + 马龙县 + 陆良县 + 师宗县 + 罗平县 + 富源县 + 会泽县 + 沾益县 + 宣威市 + + + 2 + + 玉溪市 + + 红塔区 + 江川县 + 澄江县 + 通海县 + 华宁县 + 易门县 + 峨山彝族自治县 + 新平彝族傣族自治县 + 元江哈尼族彝族傣族自治县 + + + 3 + + 保山市 + + 隆阳区 + 施甸县 + 腾冲县 + 龙陵县 + 昌宁县 + + + 4 + + 昭通市 + + 昭阳区 + 鲁甸县 + 巧家县 + 盐津县 + 大关县 + 永善县 + 绥江县 + 镇雄县 + 彝良县 + 威信县 + 水富县 + + + 5 + + 丽江市 + + 古城区 + 玉龙纳西族自治县 + 永胜县 + 华坪县 + 宁蒗彝族自治县 + + + 6 + + 普洱市 + + 思茅区 + 宁洱哈尼族彝族自治县 + 墨江哈尼族自治县 + 景东彝族自治县 + 景谷傣族彝族自治县 + 镇沅彝族哈尼族拉祜族自治县 + 江城哈尼族彝族自治县 + 孟连傣族拉祜族佤族自治县 + 澜沧拉祜族自治县 + 西盟佤族自治县 + + + 7 + + 临沧市 + + 临翔区 + 凤庆县 + 云县 + 永德县 + 镇康县 + 双江拉祜族佤族布朗族傣族自治县 + 耿马傣族佤族自治县 + 沧源佤族自治县 + + + 8 + + 楚雄彝族自治州 + + 楚雄市 + 双柏县 + 牟定县 + 南华县 + 姚安县 + 大姚县 + 永仁县 + 元谋县 + 武定县 + 禄丰县 + + + 9 + + 红河哈尼族彝族自治州 + + 个旧市 + 开远市 + 蒙自县 + 屏边苗族自治县 + 建水县 + 石屏县 + 弥勒县 + 泸西县 + 元阳县 + 红河县 + 金平苗族瑶族傣族自治县 + 绿春县 + 河口瑶族自治县 + + + 10 + + 文山壮族苗族自治州 + + 文山县 + 砚山县 + 西畴县 + 麻栗坡县 + 马关县 + 丘北县 + 广南县 + 富宁县 + + + 11 + + 西双版纳傣族自治州 + + 景洪市 + 勐海县 + 勐腊县 + + + 12 + + 大理白族自治州 + + 大理市 + 漾濞彝族自治县 + 祥云县 + 宾川县 + 弥渡县 + 南涧彝族自治县 + 巍山彝族回族自治县 + 永平县 + 云龙县 + 洱源县 + 剑川县 + 鹤庆县 + + + 13 + + 德宏傣族景颇族自治州 + + 瑞丽市 + 潞西市 + 梁河县 + 盈江县 + 陇川县 + + + 14 + + 怒江傈僳族自治州 + + 泸水县 + 福贡县 + 贡山独龙族怒族自治县 + 兰坪白族普米族自治县 + + + 15 + + 迪庆藏族自治州 + + 香格里拉县 + 德钦县 + 维西傈僳族自治县 + + + + + + 西藏自治区 + + 0 + + 拉萨市 + + 城关区 + 林周县 + 当雄县 + 尼木县 + 曲水县 + 堆龙德庆县 + 达孜县 + 墨竹工卡县 + + + 1 + + 昌都地区 + + 昌都县 + 江达县 + 贡觉县 + 类乌齐县 + 丁青县 + 察雅县 + 八宿县 + 左贡县 + 芒康县 + 洛隆县 + 边坝县 + + + 2 + + 山南地区 + + 乃东县 + 扎囊县 + 贡嘎县 + 桑日县 + 琼结县 + 曲松县 + 措美县 + 洛扎县 + 加查县 + 隆子县 + 错那县 + 浪卡子县 + + + 3 + + 日喀则地区 + + 日喀则市 + 南木林县 + 江孜县 + 定日县 + 萨迦县 + 拉孜县 + 昂仁县 + 谢通门县 + 白朗县 + 仁布县 + 康马县 + 定结县 + 仲巴县 + 亚东县 + 吉隆县 + 聂拉木县 + 萨嘎县 + 岗巴县 + + + 4 + + 那曲地区 + + 那曲县 + 嘉黎县 + 比如县 + 聂荣县 + 安多县 + 申扎县 + 索县 + 班戈县 + 巴青县 + 尼玛县 + + + 5 + + 阿里地区 + + 普兰县 + 札达县 + 噶尔县 + 日土县 + 革吉县 + 改则县 + 措勤县 + + + 6 + + 林芝地区 + + 林芝县 + 工布江达县 + 米林县 + 墨脱县 + 波密县 + 察隅县 + 朗县 + + + + + + 陕西省 + + 0 + + 西安市 + + 新城区 + 碑林区 + 莲湖区 + 灞桥区 + 未央区 + 雁塔区 + 阎良区 + 临潼区 + 长安区 + 蓝田县 + 周至县 + 户县 + 高陵县 + + + 1 + + 铜川市 + + 王益区 + 印台区 + 耀州区 + 宜君县 + + + 2 + + 宝鸡市 + + 太白县 + 凤县 + 麟游县 + 千阳县 + 陇县 + 眉县 + 扶风县 + 岐山县 + 凤翔县 + 陈仓区 + 金台区 + 渭滨区 + + + 3 + + 咸阳市 + + 秦都区 + 杨凌区 + 渭城区 + 三原县 + 泾阳县 + 乾县 + 礼泉县 + 永寿县 + 彬县 + 长武县 + 旬邑县 + 淳化县 + 武功县 + 兴平市 + + + 4 + + 渭南市 + + 临渭区 + 华县 + 潼关县 + 大荔县 + 合阳县 + 澄城县 + 蒲城县 + 白水县 + 富平县 + 韩城市 + 华阴市 + + + 5 + + 延安市 + + 宝塔区 + 延长县 + 延川县 + 子长县 + 安塞县 + 志丹县 + 吴起县 + 甘泉县 + 富县 + 洛川县 + 宜川县 + 黄龙县 + 黄陵县 + + + 6 + + 汉中市 + + 汉台区 + 南郑县 + 城固县 + 洋县 + 西乡县 + 勉县 + 宁强县 + 略阳县 + 镇巴县 + 留坝县 + 佛坪县 + + + 7 + + 榆林市 + + 榆阳区 + 神木县 + 府谷县 + 横山县 + 靖边县 + 定边县 + 绥德县 + 米脂县 + 佳县 + 吴堡县 + 清涧县 + 子洲县 + + + 8 + + 安康市 + + 汉滨区 + 汉阴县 + 石泉县 + 宁陕县 + 紫阳县 + 岚皋县 + 平利县 + 镇坪县 + 旬阳县 + 白河县 + + + 9 + + 白河县 + + 商州区 + 洛南县 + 丹凤县 + 商南县 + 山阳县 + 镇安县 + 柞水县 + + + + + + 甘肃省 + + 0 + + 兰州市 + + 城关区 + 七里河区 + 西固区 + 安宁区 + 红古区 + 永登县 + 皋兰县 + 榆中县 + + + 1 + + 嘉峪关市 + + 嘉峪关市 + + + 2 + + 金昌市 + + 金川区 + 永昌县 + + + 3 + + 白银市 + + 白银区 + 平川区 + 靖远县 + 会宁县 + 景泰县 + + + 4 + + 天水市 + + 秦州区 + 麦积区 + 清水县 + 秦安县 + 甘谷县 + 武山县 + 张家川回族自治县 + + + 5 + + 武威市 + + 凉州区 + 民勤县 + 古浪县 + 天祝藏族自治县 + + + 6 + + 张掖市 + + 甘州区 + 肃南裕固族自治县 + 民乐县 + 临泽县 + 高台县 + 山丹县 + + + 7 + + 平凉市 + + 崆峒区 + 泾川县 + 灵台县 + 崇信县 + 华亭县 + 庄浪县 + 静宁县 + + + 8 + + 酒泉市 + + 肃州区 + 金塔县 + 瓜州县 + 肃北蒙古族自治县 + 阿克塞哈萨克族自治县 + 玉门市 + 敦煌市 + + + 9 + + 庆阳市 + + 西峰区 + 庆城县 + 环县 + 华池县 + 合水县 + 正宁县 + 宁县 + 镇原县 + + + 10 + + 定西市 + + 安定区 + 通渭县 + 陇西县 + 渭源县 + 临洮县 + 漳县 + 岷县 + + + 11 + + 陇南市 + + 武都区 + 成县 + 文县 + 宕昌县 + 康县 + 西和县 + 礼县 + 徽县 + 两当县 + + + 12 + + 临夏回族自治州 + + 临夏市 + 临夏县 + 康乐县 + 永靖县 + 广河县 + 和政县 + 东乡族自治县 + 积石山保安族东乡族撒拉族自治县 + + + 13 + + 甘南藏族自治州 + + 合作市 + 临潭县 + 卓尼县 + 舟曲县 + 迭部县 + 玛曲县 + 碌曲县 + 夏河县 + + + + + + 青海省 + + 0 + + 西宁市 + + 城东区 + 城中区 + 城西区 + 城北区 + 大通回族土族自治县 + 湟中县 + 湟源县 + + + 1 + + 海东地区 + + 平安县 + 民和回族土族自治县 + 乐都县 + 互助土族自治县 + 化隆回族自治县 + 循化撒拉族自治县 + + + 2 + + 海北藏族自治州 + + 门源回族自治县 + 祁连县 + 海晏县 + 刚察县 + + + 3 + + 黄南藏族自治州 + + 同仁县 + 尖扎县 + 泽库县 + 河南蒙古族自治县 + 海南藏族自治州 + 共和县 + 同德县 + 贵德县 + 兴海县 + 贵南县 + + + 4 + + 果洛藏族自治州 + + 玛沁县 + 班玛县 + 甘德县 + 达日县 + 久治县 + 玛多县 + + + 5 + + 玉树藏族自治州 + + 玉树县 + 杂多县 + 称多县 + 治多县 + 囊谦县 + 曲麻莱县 + + + 6 + + 海西蒙古族藏族自治州 + + 格尔木市 + 德令哈市 + 乌兰县 + 都兰县 + 天峻县 + + + + + + 宁夏回族自治区 + + 0 + + 银川市 + + 兴庆区 + 西夏区 + 金凤区 + 永宁县 + 贺兰县 + 灵武市 + + + 1 + + 石嘴山市 + + 大武口区 + 惠农区 + 平罗县 + + + 2 + + 吴忠市 + + 利通区 + 盐池县 + 同心县 + 青铜峡市 + + + 3 + + 固原市 + + 原州区 + 西吉县 + 隆德县 + 泾源县 + 彭阳县 + + + 4 + + 中卫市 + + 沙坡头区 + 中宁县 + 海原县 + + + + + + 新疆维吾尔自治区 + + 0 + + 乌鲁木齐市 + + 天山区 + 沙依巴克区 + 新市区 + 水磨沟区 + 头屯河区 + 达坂城区 + 米东区 + 乌鲁木齐县 + + + 1 + + 克拉玛依市 + + 独山子区 + 克拉玛依区 + 白碱滩区 + 乌尔禾区 + + + 2 + + 吐鲁番地区 + + 吐鲁番市 + 鄯善县 + 托克逊县 + + + 3 + + 哈密地区 + + 哈密市 + 巴里坤哈萨克自治县 + 伊吾县 + + + 4 + + 昌吉回族自治州 + + 昌吉市 + 阜康市 + 呼图壁县 + 玛纳斯县 + 奇台县 + 吉木萨尔县 + 木垒哈萨克自治县 + + + 5 + + 博尔塔拉蒙古自治州 + + 博乐市 + 精河县 + 温泉县 + + + 6 + + 巴音郭楞蒙古自治州 + + 库尔勒市 + 轮台县 + 尉犁县 + 若羌县 + 且末县 + 焉耆回族自治县 + 和静县 + 和硕县 + 博湖县 + + + 7 + + 阿克苏地区 + + 阿克苏市 + 温宿县 + 库车县 + 沙雅县 + 新和县 + 拜城县 + 乌什县 + 阿瓦提县 + 柯坪县 + + + 8 + + 克孜勒苏柯尔克孜自治州 + + 阿图什市 + 阿克陶县 + 阿合奇县 + 乌恰县 + + + 9 + + 喀什地区 + + 喀什市 + 疏附县 + 疏勒县 + 英吉沙县 + 泽普县 + 莎车县 + 叶城县 + 麦盖提县 + 岳普湖县 + 伽师县 + 巴楚县 + 塔什库尔干塔吉克自治县 + + + 10 + + 和田地区 + + 和田市 + 和田县 + 墨玉县 + 皮山县 + 洛浦县 + 策勒县 + 于田县 + 民丰县 + + + 11 + + 伊犁哈萨克自治州 + + 伊宁市 + 奎屯市 + 伊宁县 + 察布查尔锡伯自治县 + 霍城县 + 巩留县 + 新源县 + 昭苏县 + 特克斯县 + 尼勒克县 + + + 12 + + 塔城地区 + + 塔城市 + 乌苏市 + 额敏县 + 沙湾县 + 托里县 + 裕民县 + 和布克赛尔蒙古自治县 + + + 13 + + 阿勒泰地区 + + 阿勒泰市 + 布尔津县 + 富蕴县 + 福海县 + 哈巴河县 + 青河县 + 吉木乃县 + + + 14 + + 石河子市 + + 石河子市 + + + 15 + + 阿拉尔市 + + 阿拉尔市 + + + 16 + + 图木舒克市 + + 图木舒克市 + + + 17 + + 五家渠市 + + 五家渠市 + + + + + + 台湾省 + + 0 + + 台北市 + + 台北市 + + + 1 + + 高雄市 + + 高雄市 + + + 2 + + 基隆市 + + 基隆市 + + + 3 + + 新竹市 + + 新竹市 + + + 4 + + 台中市 + + 台中市 + + + 5 + + 嘉义市 + + 嘉义市 + + + 6 + + 台北县 + + 台北县 + + + 7 + + 宜兰县 + + 宜兰县 + + + 8 + + 桃园县 + + 桃园县 + + + 9 + + 新竹县 + + 新竹县 + + + 10 + + 苗栗县 + + 苗栗县 + + + 11 + + 台中县 + + 台中县 + + + 12 + + 彰化县 + + 彰化县 + + + 13 + + 南投县 + + 南投县 + + + 14 + + 云林县 + + 云林县 + + + 15 + + 嘉义县 + + 嘉义县 + + + 16 + + 台南县 + + 台南县 + + + 17 + + 高雄县 + + 高雄县 + + + 18 + + 屏东县 + + 屏东县 + + + 19 + + 台东县 + + 台东县 + + + 20 + + 花莲县 + + 花莲县 + + + 21 + + 澎湖县 + + 澎湖县 + + + + + + 香港特别行政区 + + 0 + + 香港特别行政区 + + 香港特别行政区 + + + + + + 澳门特别行政区 + + 0 + + 澳门特别行政区 + + 澳门特别行政区 + + + + + + diff --git a/CSPickerView/Frameworks/CSPickerView.bundle/Assets/en.lproj/Localizable.strings b/CSPickerView/Frameworks/CSPickerView.bundle/Assets/en.lproj/Localizable.strings new file mode 100644 index 0000000..85a7ba7 --- /dev/null +++ b/CSPickerView/Frameworks/CSPickerView.bundle/Assets/en.lproj/Localizable.strings @@ -0,0 +1,11 @@ +/* + Localizable.strings + CSPickerView + 英文 + Created by CoderStar on 2021/6/6. +*/ + +"CSPickerView.sure" = "Sure"; +"CSPickerView.cancel" = "Cancel"; +"CSPickerView.startEndTime" = "Please Select Start And End Time"; +"CSPickerView.to" = "To"; diff --git a/CSPickerView/Frameworks/CSPickerView.bundle/Assets/zh-Hans.lproj/Localizable.strings b/CSPickerView/Frameworks/CSPickerView.bundle/Assets/zh-Hans.lproj/Localizable.strings new file mode 100644 index 0000000..f119664 --- /dev/null +++ b/CSPickerView/Frameworks/CSPickerView.bundle/Assets/zh-Hans.lproj/Localizable.strings @@ -0,0 +1,12 @@ +/* + Localizable.strings + CSPickerView + 中文 + Created by CoderStar on 2021/6/6. + +*/ + +"CSPickerView.sure" = "确定"; +"CSPickerView.cancel" = "取消"; +"CSPickerView.startEndTime" = "请选择起止时间"; +"CSPickerView.to" = "至"; diff --git a/CSPickerView/Frameworks/CSPickerView.bundle/en.lproj/Localizable.strings b/CSPickerView/Frameworks/CSPickerView.bundle/en.lproj/Localizable.strings new file mode 100644 index 0000000..85a7ba7 --- /dev/null +++ b/CSPickerView/Frameworks/CSPickerView.bundle/en.lproj/Localizable.strings @@ -0,0 +1,11 @@ +/* + Localizable.strings + CSPickerView + 英文 + Created by CoderStar on 2021/6/6. +*/ + +"CSPickerView.sure" = "Sure"; +"CSPickerView.cancel" = "Cancel"; +"CSPickerView.startEndTime" = "Please Select Start And End Time"; +"CSPickerView.to" = "To"; diff --git a/CSPickerView/Frameworks/CSPickerView.bundle/zh-Hans.lproj/Localizable.strings b/CSPickerView/Frameworks/CSPickerView.bundle/zh-Hans.lproj/Localizable.strings new file mode 100644 index 0000000..f119664 --- /dev/null +++ b/CSPickerView/Frameworks/CSPickerView.bundle/zh-Hans.lproj/Localizable.strings @@ -0,0 +1,12 @@ +/* + Localizable.strings + CSPickerView + 中文 + Created by CoderStar on 2021/6/6. + +*/ + +"CSPickerView.sure" = "确定"; +"CSPickerView.cancel" = "取消"; +"CSPickerView.startEndTime" = "请选择起止时间"; +"CSPickerView.to" = "至"; diff --git a/CSPickerView/Frameworks/CSPickerView.framework/CSPickerView b/CSPickerView/Frameworks/CSPickerView.framework/CSPickerView new file mode 100644 index 0000000..1dd2278 Binary files /dev/null and b/CSPickerView/Frameworks/CSPickerView.framework/CSPickerView differ diff --git a/CSPickerView/Frameworks/CSPickerView.framework/Headers/CSPickerView-Swift.h b/CSPickerView/Frameworks/CSPickerView.framework/Headers/CSPickerView-Swift.h new file mode 100644 index 0000000..90ef938 --- /dev/null +++ b/CSPickerView/Frameworks/CSPickerView.framework/Headers/CSPickerView-Swift.h @@ -0,0 +1,1659 @@ +#if defined(__x86_64__) && __x86_64__ || (__i386__) && __i386__ || (__arm64__) && __arm64__ || (__armv7__) && __armv7__ || (__armv7s__) && __armv7s__// Generated by Apple Swift version 5.3.2 (swiftlang-1200.0.45 clang-1200.0.32.28) +#ifndef CSPICKERVIEW_SWIFT_H +#define CSPICKERVIEW_SWIFT_H +#pragma clang diagnostic push +#pragma clang diagnostic ignored "-Wgcc-compat" + +#if !defined(__has_include) +# define __has_include(x) 0 +#endif +#if !defined(__has_attribute) +# define __has_attribute(x) 0 +#endif +#if !defined(__has_feature) +# define __has_feature(x) 0 +#endif +#if !defined(__has_warning) +# define __has_warning(x) 0 +#endif + +#if __has_include() +# include +#endif + +#pragma clang diagnostic ignored "-Wauto-import" +#include +#include +#include +#include + +#if !defined(SWIFT_TYPEDEFS) +# define SWIFT_TYPEDEFS 1 +# if __has_include() +# include +# elif !defined(__cplusplus) +typedef uint_least16_t char16_t; +typedef uint_least32_t char32_t; +# endif +typedef float swift_float2 __attribute__((__ext_vector_type__(2))); +typedef float swift_float3 __attribute__((__ext_vector_type__(3))); +typedef float swift_float4 __attribute__((__ext_vector_type__(4))); +typedef double swift_double2 __attribute__((__ext_vector_type__(2))); +typedef double swift_double3 __attribute__((__ext_vector_type__(3))); +typedef double swift_double4 __attribute__((__ext_vector_type__(4))); +typedef int swift_int2 __attribute__((__ext_vector_type__(2))); +typedef int swift_int3 __attribute__((__ext_vector_type__(3))); +typedef int swift_int4 __attribute__((__ext_vector_type__(4))); +typedef unsigned int swift_uint2 __attribute__((__ext_vector_type__(2))); +typedef unsigned int swift_uint3 __attribute__((__ext_vector_type__(3))); +typedef unsigned int swift_uint4 __attribute__((__ext_vector_type__(4))); +#endif + +#if !defined(SWIFT_PASTE) +# define SWIFT_PASTE_HELPER(x, y) x##y +# define SWIFT_PASTE(x, y) SWIFT_PASTE_HELPER(x, y) +#endif +#if !defined(SWIFT_METATYPE) +# define SWIFT_METATYPE(X) Class +#endif +#if !defined(SWIFT_CLASS_PROPERTY) +# if __has_feature(objc_class_property) +# define SWIFT_CLASS_PROPERTY(...) __VA_ARGS__ +# else +# define SWIFT_CLASS_PROPERTY(...) +# endif +#endif + +#if __has_attribute(objc_runtime_name) +# define SWIFT_RUNTIME_NAME(X) __attribute__((objc_runtime_name(X))) +#else +# define SWIFT_RUNTIME_NAME(X) +#endif +#if __has_attribute(swift_name) +# define SWIFT_COMPILE_NAME(X) __attribute__((swift_name(X))) +#else +# define SWIFT_COMPILE_NAME(X) +#endif +#if __has_attribute(objc_method_family) +# define SWIFT_METHOD_FAMILY(X) __attribute__((objc_method_family(X))) +#else +# define SWIFT_METHOD_FAMILY(X) +#endif +#if __has_attribute(noescape) +# define SWIFT_NOESCAPE __attribute__((noescape)) +#else +# define SWIFT_NOESCAPE +#endif +#if __has_attribute(ns_consumed) +# define SWIFT_RELEASES_ARGUMENT __attribute__((ns_consumed)) +#else +# define SWIFT_RELEASES_ARGUMENT +#endif +#if __has_attribute(warn_unused_result) +# define SWIFT_WARN_UNUSED_RESULT __attribute__((warn_unused_result)) +#else +# define SWIFT_WARN_UNUSED_RESULT +#endif +#if __has_attribute(noreturn) +# define SWIFT_NORETURN __attribute__((noreturn)) +#else +# define SWIFT_NORETURN +#endif +#if !defined(SWIFT_CLASS_EXTRA) +# define SWIFT_CLASS_EXTRA +#endif +#if !defined(SWIFT_PROTOCOL_EXTRA) +# define SWIFT_PROTOCOL_EXTRA +#endif +#if !defined(SWIFT_ENUM_EXTRA) +# define SWIFT_ENUM_EXTRA +#endif +#if !defined(SWIFT_CLASS) +# if __has_attribute(objc_subclassing_restricted) +# define SWIFT_CLASS(SWIFT_NAME) SWIFT_RUNTIME_NAME(SWIFT_NAME) __attribute__((objc_subclassing_restricted)) SWIFT_CLASS_EXTRA +# define SWIFT_CLASS_NAMED(SWIFT_NAME) __attribute__((objc_subclassing_restricted)) SWIFT_COMPILE_NAME(SWIFT_NAME) SWIFT_CLASS_EXTRA +# else +# define SWIFT_CLASS(SWIFT_NAME) SWIFT_RUNTIME_NAME(SWIFT_NAME) SWIFT_CLASS_EXTRA +# define SWIFT_CLASS_NAMED(SWIFT_NAME) SWIFT_COMPILE_NAME(SWIFT_NAME) SWIFT_CLASS_EXTRA +# endif +#endif +#if !defined(SWIFT_RESILIENT_CLASS) +# if __has_attribute(objc_class_stub) +# define SWIFT_RESILIENT_CLASS(SWIFT_NAME) SWIFT_CLASS(SWIFT_NAME) __attribute__((objc_class_stub)) +# define SWIFT_RESILIENT_CLASS_NAMED(SWIFT_NAME) __attribute__((objc_class_stub)) SWIFT_CLASS_NAMED(SWIFT_NAME) +# else +# define SWIFT_RESILIENT_CLASS(SWIFT_NAME) SWIFT_CLASS(SWIFT_NAME) +# define SWIFT_RESILIENT_CLASS_NAMED(SWIFT_NAME) SWIFT_CLASS_NAMED(SWIFT_NAME) +# endif +#endif + +#if !defined(SWIFT_PROTOCOL) +# define SWIFT_PROTOCOL(SWIFT_NAME) SWIFT_RUNTIME_NAME(SWIFT_NAME) SWIFT_PROTOCOL_EXTRA +# define SWIFT_PROTOCOL_NAMED(SWIFT_NAME) SWIFT_COMPILE_NAME(SWIFT_NAME) SWIFT_PROTOCOL_EXTRA +#endif + +#if !defined(SWIFT_EXTENSION) +# define SWIFT_EXTENSION(M) SWIFT_PASTE(M##_Swift_, __LINE__) +#endif + +#if !defined(OBJC_DESIGNATED_INITIALIZER) +# if __has_attribute(objc_designated_initializer) +# define OBJC_DESIGNATED_INITIALIZER __attribute__((objc_designated_initializer)) +# else +# define OBJC_DESIGNATED_INITIALIZER +# endif +#endif +#if !defined(SWIFT_ENUM_ATTR) +# if defined(__has_attribute) && __has_attribute(enum_extensibility) +# define SWIFT_ENUM_ATTR(_extensibility) __attribute__((enum_extensibility(_extensibility))) +# else +# define SWIFT_ENUM_ATTR(_extensibility) +# endif +#endif +#if !defined(SWIFT_ENUM) +# define SWIFT_ENUM(_type, _name, _extensibility) enum _name : _type _name; enum SWIFT_ENUM_ATTR(_extensibility) SWIFT_ENUM_EXTRA _name : _type +# if __has_feature(generalized_swift_name) +# define SWIFT_ENUM_NAMED(_type, _name, SWIFT_NAME, _extensibility) enum _name : _type _name SWIFT_COMPILE_NAME(SWIFT_NAME); enum SWIFT_COMPILE_NAME(SWIFT_NAME) SWIFT_ENUM_ATTR(_extensibility) SWIFT_ENUM_EXTRA _name : _type +# else +# define SWIFT_ENUM_NAMED(_type, _name, SWIFT_NAME, _extensibility) SWIFT_ENUM(_type, _name, _extensibility) +# endif +#endif +#if !defined(SWIFT_UNAVAILABLE) +# define SWIFT_UNAVAILABLE __attribute__((unavailable)) +#endif +#if !defined(SWIFT_UNAVAILABLE_MSG) +# define SWIFT_UNAVAILABLE_MSG(msg) __attribute__((unavailable(msg))) +#endif +#if !defined(SWIFT_AVAILABILITY) +# define SWIFT_AVAILABILITY(plat, ...) __attribute__((availability(plat, __VA_ARGS__))) +#endif +#if !defined(SWIFT_WEAK_IMPORT) +# define SWIFT_WEAK_IMPORT __attribute__((weak_import)) +#endif +#if !defined(SWIFT_DEPRECATED) +# define SWIFT_DEPRECATED __attribute__((deprecated)) +#endif +#if !defined(SWIFT_DEPRECATED_MSG) +# define SWIFT_DEPRECATED_MSG(...) __attribute__((deprecated(__VA_ARGS__))) +#endif +#if __has_feature(attribute_diagnose_if_objc) +# define SWIFT_DEPRECATED_OBJC(Msg) __attribute__((diagnose_if(1, Msg, "warning"))) +#else +# define SWIFT_DEPRECATED_OBJC(Msg) SWIFT_DEPRECATED_MSG(Msg) +#endif +#if !defined(IBSegueAction) +# define IBSegueAction +#endif +#if __has_feature(modules) +#if __has_warning("-Watimport-in-framework-header") +#pragma clang diagnostic ignored "-Watimport-in-framework-header" +#endif +@import CoreGraphics; +@import Foundation; +@import ObjectiveC; +@import UIKit; +#endif + +#pragma clang diagnostic ignored "-Wproperty-attribute-mismatch" +#pragma clang diagnostic ignored "-Wduplicate-method-arg" +#if __has_warning("-Wpragma-clang-attribute") +# pragma clang diagnostic ignored "-Wpragma-clang-attribute" +#endif +#pragma clang diagnostic ignored "-Wunknown-pragmas" +#pragma clang diagnostic ignored "-Wnullability" + +#if __has_attribute(external_source_symbol) +# pragma push_macro("any") +# undef any +# pragma clang attribute push(__attribute__((external_source_symbol(language="Swift", defined_in="CSPickerView",generated_declaration))), apply_to=any(function,enum,objc_interface,objc_category,objc_protocol)) +# pragma pop_macro("any") +#endif + +/// 城市选择样式 +typedef SWIFT_ENUM(NSInteger, CityPickStyle, open) { +/// 省 + CityPickStyleProvince = 0, +/// 市 + CityPickStyleCity = 1, +/// 区 + CityPickStyleArea = 2, +}; + + +/// 时间选择设置 +SWIFT_CLASS("_TtC12CSPickerView17DatePickerSetting") +@interface DatePickerSetting : NSObject +/// 默认选中时间 +@property (nonatomic, copy) NSDate * _Nonnull date; +/// 时间样式 +@property (nonatomic) UIDatePickerMode dateMode; +/// 最小时间 +@property (nonatomic, copy) NSDate * _Nullable minimumDate; +/// 最大时间 +@property (nonatomic, copy) NSDate * _Nullable maximumDate; +/// 构造函数 +- (nonnull instancetype)init OBJC_DESIGNATED_INITIALIZER; +@end + +@class UILabel; +@class UIButton; +@class NSCoder; + +/// 起止时间弹出框 +SWIFT_CLASS("_TtC12CSPickerView22DurationDatePickerView") +@interface DurationDatePickerView : UIView +/// 选择日期是否可大于现在,默认true +@property (nonatomic) BOOL canGreatNow; +/// 选择日期是否可小于现在,默认true +@property (nonatomic) BOOL canLessNow; +/// 确定闭包 +@property (nonatomic, copy) void (^ _Nullable sureBlock)(NSString * _Nonnull, NSString * _Nonnull); +/// 取消闭包 +@property (nonatomic, copy) void (^ _Nullable cancelBlock)(void); +@property (nonatomic, strong) UILabel * _Nonnull titleLabel; +@property (nonatomic, strong) UIButton * _Nonnull startBtn; +@property (nonatomic, strong) UIButton * _Nonnull endBtn; +@property (nonatomic, strong) UIButton * _Nonnull cancelBtn; +@property (nonatomic, strong) UIButton * _Nonnull confirmBtn; +- (nonnull instancetype)initWithFrame:(CGRect)frame SWIFT_UNAVAILABLE; +- (nullable instancetype)initWithCoder:(NSCoder * _Nonnull)aDecoder OBJC_DESIGNATED_INITIALIZER SWIFT_UNAVAILABLE; +@end + + +enum DurationDatePickerViewDateType : NSInteger; + +@interface DurationDatePickerView (SWIFT_EXTENSION(CSPickerView)) +/// 展示起止时间弹出框 +/// \param startDate 开始时间 +/// +/// \param endDate 结束时间 +/// +/// \param dateType 时间类型 +/// ++ (DurationDatePickerView * _Nonnull)getPopupViewWithStartDate:(NSDate * _Nonnull)startDate endDate:(NSDate * _Nonnull)endDate dateType:(enum DurationDatePickerViewDateType)dateType SWIFT_WARN_UNUSED_RESULT; +/// 弹出框显示 +- (void)showWithCompletion:(void (^ _Nullable)(BOOL))completion; +/// 弹出框消失 +- (void)dismissWithCompletion:(void (^ _Nullable)(BOOL))completion; +@end + + + +/// 选择器样式 +typedef SWIFT_ENUM(NSInteger, DurationDatePickerViewDateType, open) { +/// 年月日 + DurationDatePickerViewDateTypeYMD = 0, +/// 年月日时分 + DurationDatePickerViewDateTypeYMDHM = 1, +}; + +/// 选择器样式 +typedef SWIFT_ENUM(NSInteger, PickerStyles, open) { +/// 单行 + PickerStylesSingle = 0, +/// 多行 + PickerStylesMultiple = 1, +/// 多行联动 + PickerStylesMultipleAssociated = 2, +/// 日期 + PickerStylesDate = 3, +}; + + +SWIFT_CLASS("_TtC12CSPickerView10PickerView") +@interface PickerView : UIView +- (nonnull instancetype)initWithPickerStyle:(enum PickerStyles)pickerStyle OBJC_DESIGNATED_INITIALIZER; +- (nonnull instancetype)initWithFrame:(CGRect)frame SWIFT_UNAVAILABLE; +- (nullable instancetype)initWithCoder:(NSCoder * _Nonnull)aDecoder SWIFT_UNAVAILABLE; +- (void)layoutSubviews; +@end + + + +@interface PickerView (SWIFT_EXTENSION(CSPickerView)) +/// 多列不关联 +/// \param toolBarTitle 工具栏标题 +/// +/// \param multipleColsData 数据源 ~> [[String]] +/// +/// \param defaultSelectedIndexs 默认选中索引 +/// +/// \param cancelAction 取消回调 +/// +/// \param doneAction 完成回调 +/// +/// +/// returns: +/// PickerView ++ (PickerView * _Nonnull)multipleCosPicker:(NSString * _Nonnull)toolBarTitle multipleColsData:(NSArray *> * _Nonnull)multipleColsData defaultSelectedIndexs:(NSArray * _Nullable)defaultSelectedIndexs cancelAction:(void (^ _Nullable)(void))cancelAction doneAction:(void (^ _Nullable)(NSArray * _Nonnull, NSArray * _Nonnull))doneAction SWIFT_WARN_UNUSED_RESULT; +/// 城市选择器 +/// \param toolBarTitle 工具栏标题 +/// +/// \param defaultSelectedValues 默认选中值 +/// +/// \param cancelAction 取消回调 +/// +/// \param doneAction 完成回调 +/// +/// \param type 显示样式类型 +/// +/// +/// returns: +/// PickerView ++ (PickerView * _Nonnull)citiesPicker:(NSString * _Nonnull)toolBarTitle type:(enum CityPickStyle)type defaultSelectedValues:(NSArray * _Nullable)defaultSelectedValues cancelAction:(void (^ _Nullable)(void))cancelAction doneAction:(void (^ _Nullable)(NSArray * _Nonnull, NSArray * _Nonnull))doneAction SWIFT_WARN_UNUSED_RESULT; +/// 时间选择器 +/// \param toolBarTitle 工具栏标题 +/// +/// \param datePickerSetting date配置 +/// +/// \param cancelAction 取消回调 +/// +/// \param doneAction 完成回调 +/// +/// +/// returns: +/// PickerView ++ (PickerView * _Nonnull)datePicker:(NSString * _Nonnull)toolBarTitle datePickerSetting:(DatePickerSetting * _Nonnull)datePickerSetting cancelAction:(void (^ _Nullable)(void))cancelAction doneAction:(void (^ _Nullable)(NSDate * _Nonnull))doneAction SWIFT_WARN_UNUSED_RESULT; +@end + +@class UIPickerView; + +@interface PickerView (SWIFT_EXTENSION(CSPickerView)) +- (NSInteger)numberOfComponentsInPickerView:(UIPickerView * _Nonnull)pickerView SWIFT_WARN_UNUSED_RESULT; +- (NSInteger)pickerView:(UIPickerView * _Nonnull)pickerView numberOfRowsInComponent:(NSInteger)component SWIFT_WARN_UNUSED_RESULT; +- (void)pickerView:(UIPickerView * _Nonnull)pickerView didSelectRow:(NSInteger)row inComponent:(NSInteger)component; +- (UIView * _Nonnull)pickerView:(UIPickerView * _Nonnull)pickerView viewForRow:(NSInteger)row forComponent:(NSInteger)component reusingView:(UIView * _Nullable)view SWIFT_WARN_UNUSED_RESULT; +@end + +@class UIColor; + +SWIFT_CLASS("_TtC12CSPickerView16PickerViewConfig") +@interface PickerViewConfig : NSObject +- (nonnull instancetype)init SWIFT_UNAVAILABLE; ++ (nonnull instancetype)new SWIFT_UNAVAILABLE_MSG("-init is unavailable"); +SWIFT_CLASS_PROPERTY(@property (nonatomic, class, readonly, strong) PickerViewConfig * _Nonnull shared;) ++ (PickerViewConfig * _Nonnull)shared SWIFT_WARN_UNUSED_RESULT; +/// 主背景色 +@property (nonatomic, strong) UIColor * _Nonnull mainBackgroundColor; +/// 蒙版颜色 +@property (nonatomic, strong) UIColor * _Nonnull maskColor; +/// 主文字颜色 +@property (nonatomic, strong) UIColor * _Nonnull mainTextColor; +/// 左边按钮颜色 +@property (nonatomic, strong) UIColor * _Nonnull leftButtonColor; +/// 右边按钮颜色 +@property (nonatomic, strong) UIColor * _Nonnull rightButtonColor; +/// 中间标题颜色 +@property (nonatomic, strong) UIColor * _Nonnull centerLabelColor; +/// 分割线颜色 +@property (nonatomic, strong) UIColor * _Nonnull lineColor; +/// 强制使用某语言的编码 +@property (nonatomic, copy) NSString * _Nullable languageCode; +/// 动画时长 +@property (nonatomic) NSTimeInterval animateDuration; +@end + + + +SWIFT_PROTOCOL("_TtP12CSPickerView18PickerViewDelegate_") +@protocol PickerViewDelegate +- (void)singleColDidSelecte:(NSInteger)selectedIndex selectedValue:(NSString * _Nonnull)selectedValue; +- (void)multipleColsDidSelecte:(NSArray * _Nonnull)selectedIndexs selectedValues:(NSArray * _Nonnull)selectedValues; +- (void)dateDidSelecte:(NSDate * _Nonnull)selectedDate; +@end + + +SWIFT_CLASS("_TtC12CSPickerView17PickerViewManager") +@interface PickerViewManager : UIView +- (nonnull instancetype)initWithFrame:(CGRect)frame SWIFT_UNAVAILABLE; +- (nullable instancetype)initWithCoder:(NSCoder * _Nonnull)aDecoder OBJC_DESIGNATED_INITIALIZER SWIFT_UNAVAILABLE; +@end + + +@interface PickerViewManager (SWIFT_EXTENSION(CSPickerView)) +/// 把self从window中移除 +- (void)dimissWithCompletion:(void (^ _Nullable)(BOOL))completion; +@end + + + +@interface PickerViewManager (SWIFT_EXTENSION(CSPickerView)) +/// 多列不关联选择器 +/// \param toolBarTitle 标题 +/// +/// \param data 数据;为空时,会弹出提示框提示数据为空 +/// +/// \param defaultSelectedIndexs 默认选中的每一列的行数;当默认索引不在合理范围内,会默认显示第一个,默认索引数组数量不做限制,已兼容 +/// +/// \param cancelAction 取消回调 +/// +/// \param sureAction 确定回调 +/// ++ (void)showMultipleColsPicker:(NSString * _Nonnull)toolBarTitle data:(NSArray *> * _Nonnull)data defaultSelectedIndexs:(NSArray * _Nullable)defaultSelectedIndexs cancelAction:(void (^ _Nullable)(void))cancelAction sureAction:(void (^ _Nullable)(NSArray * _Nonnull, NSArray * _Nonnull))sureAction; +/// 城市选择器 +/// \param toolBarTitle 标题 +/// +/// \param type 显示样式类型 +/// +/// \param defaultSelectedValues 默认选中的每一列的值, 注意不是行数;当默认值不存在时,会默认显示第一个,默认数据数组数量不做限制,已兼容 +/// +/// \param cancelAction 取消回调 +/// +/// \param sureAction 确定回调 +/// ++ (void)showCitiesPicker:(NSString * _Nonnull)toolBarTitle type:(enum CityPickStyle)type defaultSelectedValues:(NSArray * _Nullable)defaultSelectedValues cancelAction:(void (^ _Nullable)(void))cancelAction sureAction:(void (^ _Nullable)(NSArray * _Nonnull, NSArray * _Nonnull))sureAction; +/// 日期选择器 +/// \param toolBarTitle 标题 +/// +/// \param datePickerSetting 可配置UIDatePicker的样式 +/// +/// \param cancelAction 取消回调 +/// +/// \param sureAction 确定回调 +/// ++ (void)showDatePicker:(NSString * _Nonnull)toolBarTitle datePickerSetting:(DatePickerSetting * _Nonnull)datePickerSetting cancelAction:(void (^ _Nullable)(void))cancelAction sureAction:(void (^ _Nullable)(NSDate * _Nonnull))sureAction; +@end + +@class NSBundle; + +SWIFT_CLASS("_TtC12CSPickerView15PickerViewUtils") +@interface PickerViewUtils : NSObject +SWIFT_CLASS_PROPERTY(@property (nonatomic, class, readonly, strong) NSBundle * _Nullable resoureBundle;) ++ (NSBundle * _Nullable)resoureBundle SWIFT_WARN_UNUSED_RESULT; +SWIFT_CLASS_PROPERTY(@property (nonatomic, class, readonly, copy) NSString * _Nullable addressPlistPath;) ++ (NSString * _Nullable)addressPlistPath SWIFT_WARN_UNUSED_RESULT; ++ (NSString * _Nullable)localizedStringWithKey:(NSString * _Nonnull)key defaultValue:(NSString * _Nullable)defaultValue SWIFT_WARN_UNUSED_RESULT; +- (nonnull instancetype)init OBJC_DESIGNATED_INITIALIZER; +@end + + +@interface PickerViewUtils (SWIFT_EXTENSION(CSPickerView)) ++ (NSString * _Nonnull)formatDateWithDate:(NSDate * _Nonnull)date formatStr:(NSString * _Nonnull)formatStr SWIFT_WARN_UNUSED_RESULT; ++ (NSDate * _Nullable)toDateWithDateStr:(NSString * _Nullable)dateStr dateTypeStr:(NSString * _Nonnull)dateTypeStr SWIFT_WARN_UNUSED_RESULT; +@end + + +SWIFT_CLASS("_TtC12CSPickerView16SelectPickerView") +@interface SelectPickerView : UIView +/// 数据 +@property (nonatomic, copy) NSArray * _Nonnull titleArr; +/// 清空按钮闭包 +@property (nonatomic, copy) void (^ _Nullable cancelAction)(void); +/// 确定按钮闭包,多选 +@property (nonatomic, copy) void (^ _Nullable sureAction)(NSArray * _Nonnull, NSArray * _Nonnull); +/// 确定按钮闭包,单选 +@property (nonatomic, copy) void (^ _Nullable singleSureAction)(NSInteger, NSString * _Nonnull); +- (nonnull instancetype)initWithFrame:(CGRect)frame SWIFT_UNAVAILABLE; +- (nullable instancetype)initWithCoder:(NSCoder * _Nonnull)coder SWIFT_UNAVAILABLE; +- (void)layoutSubviews; +@end + +@class UITableView; +@class UITableViewCell; + +@interface SelectPickerView (SWIFT_EXTENSION(CSPickerView)) +- (NSInteger)tableView:(UITableView * _Nonnull)tableView numberOfRowsInSection:(NSInteger)section SWIFT_WARN_UNUSED_RESULT; +- (UITableViewCell * _Nonnull)tableView:(UITableView * _Nonnull)tableView cellForRowAtIndexPath:(NSIndexPath * _Nonnull)indexPath SWIFT_WARN_UNUSED_RESULT; +@end + + +@interface SelectPickerView (SWIFT_EXTENSION(CSPickerView)) +- (void)tableView:(UITableView * _Nonnull)tableView didSelectRowAtIndexPath:(NSIndexPath * _Nonnull)indexPath; +- (void)tableView:(UITableView * _Nonnull)tableView willDisplayCell:(UITableViewCell * _Nonnull)cell forRowAtIndexPath:(NSIndexPath * _Nonnull)indexPath; +@end + + +@interface SelectPickerView (SWIFT_EXTENSION(CSPickerView)) +/// 展示多选view +/// \param title 标题 +/// +/// \param data 数据 +/// +/// \param defaultSelectedIndex 默认选中索引 +/// +/// \param cancelAction 取消回调 +/// +/// \param sureAction 确定回调 +/// ++ (void)showViewWithTitle:(NSString * _Nonnull)title data:(NSArray * _Nonnull)data defaultSelectedIndexs:(NSArray * _Nullable)defaultSelectedIndexs cancelAction:(void (^ _Nonnull)(void))cancelAction sureAction:(void (^ _Nonnull)(NSArray * _Nonnull, NSArray * _Nonnull))sureAction; +/// 获取多选view +/// \param title 标题 +/// +/// \param data 数据 +/// +/// \param defaultSelectedIndexs 默认选中索引,如果为nil,表示都不选中 +/// +/// +/// returns: +/// SelectPickerView ++ (SelectPickerView * _Nullable)getViewWithTitle:(NSString * _Nonnull)title data:(NSArray * _Nonnull)data defaultSelectedIndexs:(NSArray * _Nullable)defaultSelectedIndexs SWIFT_WARN_UNUSED_RESULT; +/// 弹出框显示 +- (void)showWithCompletion:(void (^ _Nullable)(BOOL))completion; +/// 弹出框消失 +- (void)dismissWithCompletion:(void (^ _Nullable)(BOOL))completion; +@end + + +SWIFT_CLASS("_TtC12CSPickerView11ToolBarView") +@interface ToolBarView : UIView +@property (nonatomic, copy) NSString * _Nonnull title; +@property (nonatomic, copy) void (^ _Nullable sureAction)(void); +@property (nonatomic, copy) void (^ _Nullable cancelAction)(void); +- (nonnull instancetype)initWithFrame:(CGRect)frame OBJC_DESIGNATED_INITIALIZER; +- (nullable instancetype)initWithCoder:(NSCoder * _Nonnull)aDecoder OBJC_DESIGNATED_INITIALIZER SWIFT_UNAVAILABLE; +- (void)layoutSubviews; +@end + +#if __has_attribute(external_source_symbol) +# pragma clang attribute pop +#endif +#pragma clang diagnostic pop +#endif + +#elif defined(__ARM_ARCH_7S__) && __ARM_ARCH_7S__ +// Generated by Apple Swift version 5.3.2 (swiftlang-1200.0.45 clang-1200.0.32.28) +#ifndef CSPICKERVIEW_SWIFT_H +#define CSPICKERVIEW_SWIFT_H +#pragma clang diagnostic push +#pragma clang diagnostic ignored "-Wgcc-compat" + +#if !defined(__has_include) +# define __has_include(x) 0 +#endif +#if !defined(__has_attribute) +# define __has_attribute(x) 0 +#endif +#if !defined(__has_feature) +# define __has_feature(x) 0 +#endif +#if !defined(__has_warning) +# define __has_warning(x) 0 +#endif + +#if __has_include() +# include +#endif + +#pragma clang diagnostic ignored "-Wauto-import" +#include +#include +#include +#include + +#if !defined(SWIFT_TYPEDEFS) +# define SWIFT_TYPEDEFS 1 +# if __has_include() +# include +# elif !defined(__cplusplus) +typedef uint_least16_t char16_t; +typedef uint_least32_t char32_t; +# endif +typedef float swift_float2 __attribute__((__ext_vector_type__(2))); +typedef float swift_float3 __attribute__((__ext_vector_type__(3))); +typedef float swift_float4 __attribute__((__ext_vector_type__(4))); +typedef double swift_double2 __attribute__((__ext_vector_type__(2))); +typedef double swift_double3 __attribute__((__ext_vector_type__(3))); +typedef double swift_double4 __attribute__((__ext_vector_type__(4))); +typedef int swift_int2 __attribute__((__ext_vector_type__(2))); +typedef int swift_int3 __attribute__((__ext_vector_type__(3))); +typedef int swift_int4 __attribute__((__ext_vector_type__(4))); +typedef unsigned int swift_uint2 __attribute__((__ext_vector_type__(2))); +typedef unsigned int swift_uint3 __attribute__((__ext_vector_type__(3))); +typedef unsigned int swift_uint4 __attribute__((__ext_vector_type__(4))); +#endif + +#if !defined(SWIFT_PASTE) +# define SWIFT_PASTE_HELPER(x, y) x##y +# define SWIFT_PASTE(x, y) SWIFT_PASTE_HELPER(x, y) +#endif +#if !defined(SWIFT_METATYPE) +# define SWIFT_METATYPE(X) Class +#endif +#if !defined(SWIFT_CLASS_PROPERTY) +# if __has_feature(objc_class_property) +# define SWIFT_CLASS_PROPERTY(...) __VA_ARGS__ +# else +# define SWIFT_CLASS_PROPERTY(...) +# endif +#endif + +#if __has_attribute(objc_runtime_name) +# define SWIFT_RUNTIME_NAME(X) __attribute__((objc_runtime_name(X))) +#else +# define SWIFT_RUNTIME_NAME(X) +#endif +#if __has_attribute(swift_name) +# define SWIFT_COMPILE_NAME(X) __attribute__((swift_name(X))) +#else +# define SWIFT_COMPILE_NAME(X) +#endif +#if __has_attribute(objc_method_family) +# define SWIFT_METHOD_FAMILY(X) __attribute__((objc_method_family(X))) +#else +# define SWIFT_METHOD_FAMILY(X) +#endif +#if __has_attribute(noescape) +# define SWIFT_NOESCAPE __attribute__((noescape)) +#else +# define SWIFT_NOESCAPE +#endif +#if __has_attribute(ns_consumed) +# define SWIFT_RELEASES_ARGUMENT __attribute__((ns_consumed)) +#else +# define SWIFT_RELEASES_ARGUMENT +#endif +#if __has_attribute(warn_unused_result) +# define SWIFT_WARN_UNUSED_RESULT __attribute__((warn_unused_result)) +#else +# define SWIFT_WARN_UNUSED_RESULT +#endif +#if __has_attribute(noreturn) +# define SWIFT_NORETURN __attribute__((noreturn)) +#else +# define SWIFT_NORETURN +#endif +#if !defined(SWIFT_CLASS_EXTRA) +# define SWIFT_CLASS_EXTRA +#endif +#if !defined(SWIFT_PROTOCOL_EXTRA) +# define SWIFT_PROTOCOL_EXTRA +#endif +#if !defined(SWIFT_ENUM_EXTRA) +# define SWIFT_ENUM_EXTRA +#endif +#if !defined(SWIFT_CLASS) +# if __has_attribute(objc_subclassing_restricted) +# define SWIFT_CLASS(SWIFT_NAME) SWIFT_RUNTIME_NAME(SWIFT_NAME) __attribute__((objc_subclassing_restricted)) SWIFT_CLASS_EXTRA +# define SWIFT_CLASS_NAMED(SWIFT_NAME) __attribute__((objc_subclassing_restricted)) SWIFT_COMPILE_NAME(SWIFT_NAME) SWIFT_CLASS_EXTRA +# else +# define SWIFT_CLASS(SWIFT_NAME) SWIFT_RUNTIME_NAME(SWIFT_NAME) SWIFT_CLASS_EXTRA +# define SWIFT_CLASS_NAMED(SWIFT_NAME) SWIFT_COMPILE_NAME(SWIFT_NAME) SWIFT_CLASS_EXTRA +# endif +#endif +#if !defined(SWIFT_RESILIENT_CLASS) +# if __has_attribute(objc_class_stub) +# define SWIFT_RESILIENT_CLASS(SWIFT_NAME) SWIFT_CLASS(SWIFT_NAME) __attribute__((objc_class_stub)) +# define SWIFT_RESILIENT_CLASS_NAMED(SWIFT_NAME) __attribute__((objc_class_stub)) SWIFT_CLASS_NAMED(SWIFT_NAME) +# else +# define SWIFT_RESILIENT_CLASS(SWIFT_NAME) SWIFT_CLASS(SWIFT_NAME) +# define SWIFT_RESILIENT_CLASS_NAMED(SWIFT_NAME) SWIFT_CLASS_NAMED(SWIFT_NAME) +# endif +#endif + +#if !defined(SWIFT_PROTOCOL) +# define SWIFT_PROTOCOL(SWIFT_NAME) SWIFT_RUNTIME_NAME(SWIFT_NAME) SWIFT_PROTOCOL_EXTRA +# define SWIFT_PROTOCOL_NAMED(SWIFT_NAME) SWIFT_COMPILE_NAME(SWIFT_NAME) SWIFT_PROTOCOL_EXTRA +#endif + +#if !defined(SWIFT_EXTENSION) +# define SWIFT_EXTENSION(M) SWIFT_PASTE(M##_Swift_, __LINE__) +#endif + +#if !defined(OBJC_DESIGNATED_INITIALIZER) +# if __has_attribute(objc_designated_initializer) +# define OBJC_DESIGNATED_INITIALIZER __attribute__((objc_designated_initializer)) +# else +# define OBJC_DESIGNATED_INITIALIZER +# endif +#endif +#if !defined(SWIFT_ENUM_ATTR) +# if defined(__has_attribute) && __has_attribute(enum_extensibility) +# define SWIFT_ENUM_ATTR(_extensibility) __attribute__((enum_extensibility(_extensibility))) +# else +# define SWIFT_ENUM_ATTR(_extensibility) +# endif +#endif +#if !defined(SWIFT_ENUM) +# define SWIFT_ENUM(_type, _name, _extensibility) enum _name : _type _name; enum SWIFT_ENUM_ATTR(_extensibility) SWIFT_ENUM_EXTRA _name : _type +# if __has_feature(generalized_swift_name) +# define SWIFT_ENUM_NAMED(_type, _name, SWIFT_NAME, _extensibility) enum _name : _type _name SWIFT_COMPILE_NAME(SWIFT_NAME); enum SWIFT_COMPILE_NAME(SWIFT_NAME) SWIFT_ENUM_ATTR(_extensibility) SWIFT_ENUM_EXTRA _name : _type +# else +# define SWIFT_ENUM_NAMED(_type, _name, SWIFT_NAME, _extensibility) SWIFT_ENUM(_type, _name, _extensibility) +# endif +#endif +#if !defined(SWIFT_UNAVAILABLE) +# define SWIFT_UNAVAILABLE __attribute__((unavailable)) +#endif +#if !defined(SWIFT_UNAVAILABLE_MSG) +# define SWIFT_UNAVAILABLE_MSG(msg) __attribute__((unavailable(msg))) +#endif +#if !defined(SWIFT_AVAILABILITY) +# define SWIFT_AVAILABILITY(plat, ...) __attribute__((availability(plat, __VA_ARGS__))) +#endif +#if !defined(SWIFT_WEAK_IMPORT) +# define SWIFT_WEAK_IMPORT __attribute__((weak_import)) +#endif +#if !defined(SWIFT_DEPRECATED) +# define SWIFT_DEPRECATED __attribute__((deprecated)) +#endif +#if !defined(SWIFT_DEPRECATED_MSG) +# define SWIFT_DEPRECATED_MSG(...) __attribute__((deprecated(__VA_ARGS__))) +#endif +#if __has_feature(attribute_diagnose_if_objc) +# define SWIFT_DEPRECATED_OBJC(Msg) __attribute__((diagnose_if(1, Msg, "warning"))) +#else +# define SWIFT_DEPRECATED_OBJC(Msg) SWIFT_DEPRECATED_MSG(Msg) +#endif +#if !defined(IBSegueAction) +# define IBSegueAction +#endif +#if __has_feature(modules) +#if __has_warning("-Watimport-in-framework-header") +#pragma clang diagnostic ignored "-Watimport-in-framework-header" +#endif +@import CoreGraphics; +@import Foundation; +@import ObjectiveC; +@import UIKit; +#endif + +#pragma clang diagnostic ignored "-Wproperty-attribute-mismatch" +#pragma clang diagnostic ignored "-Wduplicate-method-arg" +#if __has_warning("-Wpragma-clang-attribute") +# pragma clang diagnostic ignored "-Wpragma-clang-attribute" +#endif +#pragma clang diagnostic ignored "-Wunknown-pragmas" +#pragma clang diagnostic ignored "-Wnullability" + +#if __has_attribute(external_source_symbol) +# pragma push_macro("any") +# undef any +# pragma clang attribute push(__attribute__((external_source_symbol(language="Swift", defined_in="CSPickerView",generated_declaration))), apply_to=any(function,enum,objc_interface,objc_category,objc_protocol)) +# pragma pop_macro("any") +#endif + +/// 城市选择样式 +typedef SWIFT_ENUM(NSInteger, CityPickStyle, open) { +/// 省 + CityPickStyleProvince = 0, +/// 市 + CityPickStyleCity = 1, +/// 区 + CityPickStyleArea = 2, +}; + + +/// 时间选择设置 +SWIFT_CLASS("_TtC12CSPickerView17DatePickerSetting") +@interface DatePickerSetting : NSObject +/// 默认选中时间 +@property (nonatomic, copy) NSDate * _Nonnull date; +/// 时间样式 +@property (nonatomic) UIDatePickerMode dateMode; +/// 最小时间 +@property (nonatomic, copy) NSDate * _Nullable minimumDate; +/// 最大时间 +@property (nonatomic, copy) NSDate * _Nullable maximumDate; +/// 构造函数 +- (nonnull instancetype)init OBJC_DESIGNATED_INITIALIZER; +@end + +@class UILabel; +@class UIButton; +@class NSCoder; + +/// 起止时间弹出框 +SWIFT_CLASS("_TtC12CSPickerView22DurationDatePickerView") +@interface DurationDatePickerView : UIView +/// 选择日期是否可大于现在,默认true +@property (nonatomic) BOOL canGreatNow; +/// 选择日期是否可小于现在,默认true +@property (nonatomic) BOOL canLessNow; +/// 确定闭包 +@property (nonatomic, copy) void (^ _Nullable sureBlock)(NSString * _Nonnull, NSString * _Nonnull); +/// 取消闭包 +@property (nonatomic, copy) void (^ _Nullable cancelBlock)(void); +@property (nonatomic, strong) UILabel * _Nonnull titleLabel; +@property (nonatomic, strong) UIButton * _Nonnull startBtn; +@property (nonatomic, strong) UIButton * _Nonnull endBtn; +@property (nonatomic, strong) UIButton * _Nonnull cancelBtn; +@property (nonatomic, strong) UIButton * _Nonnull confirmBtn; +- (nonnull instancetype)initWithFrame:(CGRect)frame SWIFT_UNAVAILABLE; +- (nullable instancetype)initWithCoder:(NSCoder * _Nonnull)aDecoder OBJC_DESIGNATED_INITIALIZER SWIFT_UNAVAILABLE; +@end + + +enum DurationDatePickerViewDateType : NSInteger; + +@interface DurationDatePickerView (SWIFT_EXTENSION(CSPickerView)) +/// 展示起止时间弹出框 +/// \param startDate 开始时间 +/// +/// \param endDate 结束时间 +/// +/// \param dateType 时间类型 +/// ++ (DurationDatePickerView * _Nonnull)getPopupViewWithStartDate:(NSDate * _Nonnull)startDate endDate:(NSDate * _Nonnull)endDate dateType:(enum DurationDatePickerViewDateType)dateType SWIFT_WARN_UNUSED_RESULT; +/// 弹出框显示 +- (void)showWithCompletion:(void (^ _Nullable)(BOOL))completion; +/// 弹出框消失 +- (void)dismissWithCompletion:(void (^ _Nullable)(BOOL))completion; +@end + + + +/// 选择器样式 +typedef SWIFT_ENUM(NSInteger, DurationDatePickerViewDateType, open) { +/// 年月日 + DurationDatePickerViewDateTypeYMD = 0, +/// 年月日时分 + DurationDatePickerViewDateTypeYMDHM = 1, +}; + +/// 选择器样式 +typedef SWIFT_ENUM(NSInteger, PickerStyles, open) { +/// 单行 + PickerStylesSingle = 0, +/// 多行 + PickerStylesMultiple = 1, +/// 多行联动 + PickerStylesMultipleAssociated = 2, +/// 日期 + PickerStylesDate = 3, +}; + + +SWIFT_CLASS("_TtC12CSPickerView10PickerView") +@interface PickerView : UIView +- (nonnull instancetype)initWithPickerStyle:(enum PickerStyles)pickerStyle OBJC_DESIGNATED_INITIALIZER; +- (nonnull instancetype)initWithFrame:(CGRect)frame SWIFT_UNAVAILABLE; +- (nullable instancetype)initWithCoder:(NSCoder * _Nonnull)aDecoder SWIFT_UNAVAILABLE; +- (void)layoutSubviews; +@end + + + +@interface PickerView (SWIFT_EXTENSION(CSPickerView)) +/// 多列不关联 +/// \param toolBarTitle 工具栏标题 +/// +/// \param multipleColsData 数据源 ~> [[String]] +/// +/// \param defaultSelectedIndexs 默认选中索引 +/// +/// \param cancelAction 取消回调 +/// +/// \param doneAction 完成回调 +/// +/// +/// returns: +/// PickerView ++ (PickerView * _Nonnull)multipleCosPicker:(NSString * _Nonnull)toolBarTitle multipleColsData:(NSArray *> * _Nonnull)multipleColsData defaultSelectedIndexs:(NSArray * _Nullable)defaultSelectedIndexs cancelAction:(void (^ _Nullable)(void))cancelAction doneAction:(void (^ _Nullable)(NSArray * _Nonnull, NSArray * _Nonnull))doneAction SWIFT_WARN_UNUSED_RESULT; +/// 城市选择器 +/// \param toolBarTitle 工具栏标题 +/// +/// \param defaultSelectedValues 默认选中值 +/// +/// \param cancelAction 取消回调 +/// +/// \param doneAction 完成回调 +/// +/// \param type 显示样式类型 +/// +/// +/// returns: +/// PickerView ++ (PickerView * _Nonnull)citiesPicker:(NSString * _Nonnull)toolBarTitle type:(enum CityPickStyle)type defaultSelectedValues:(NSArray * _Nullable)defaultSelectedValues cancelAction:(void (^ _Nullable)(void))cancelAction doneAction:(void (^ _Nullable)(NSArray * _Nonnull, NSArray * _Nonnull))doneAction SWIFT_WARN_UNUSED_RESULT; +/// 时间选择器 +/// \param toolBarTitle 工具栏标题 +/// +/// \param datePickerSetting date配置 +/// +/// \param cancelAction 取消回调 +/// +/// \param doneAction 完成回调 +/// +/// +/// returns: +/// PickerView ++ (PickerView * _Nonnull)datePicker:(NSString * _Nonnull)toolBarTitle datePickerSetting:(DatePickerSetting * _Nonnull)datePickerSetting cancelAction:(void (^ _Nullable)(void))cancelAction doneAction:(void (^ _Nullable)(NSDate * _Nonnull))doneAction SWIFT_WARN_UNUSED_RESULT; +@end + +@class UIPickerView; + +@interface PickerView (SWIFT_EXTENSION(CSPickerView)) +- (NSInteger)numberOfComponentsInPickerView:(UIPickerView * _Nonnull)pickerView SWIFT_WARN_UNUSED_RESULT; +- (NSInteger)pickerView:(UIPickerView * _Nonnull)pickerView numberOfRowsInComponent:(NSInteger)component SWIFT_WARN_UNUSED_RESULT; +- (void)pickerView:(UIPickerView * _Nonnull)pickerView didSelectRow:(NSInteger)row inComponent:(NSInteger)component; +- (UIView * _Nonnull)pickerView:(UIPickerView * _Nonnull)pickerView viewForRow:(NSInteger)row forComponent:(NSInteger)component reusingView:(UIView * _Nullable)view SWIFT_WARN_UNUSED_RESULT; +@end + +@class UIColor; + +SWIFT_CLASS("_TtC12CSPickerView16PickerViewConfig") +@interface PickerViewConfig : NSObject +- (nonnull instancetype)init SWIFT_UNAVAILABLE; ++ (nonnull instancetype)new SWIFT_UNAVAILABLE_MSG("-init is unavailable"); +SWIFT_CLASS_PROPERTY(@property (nonatomic, class, readonly, strong) PickerViewConfig * _Nonnull shared;) ++ (PickerViewConfig * _Nonnull)shared SWIFT_WARN_UNUSED_RESULT; +/// 主背景色 +@property (nonatomic, strong) UIColor * _Nonnull mainBackgroundColor; +/// 蒙版颜色 +@property (nonatomic, strong) UIColor * _Nonnull maskColor; +/// 主文字颜色 +@property (nonatomic, strong) UIColor * _Nonnull mainTextColor; +/// 左边按钮颜色 +@property (nonatomic, strong) UIColor * _Nonnull leftButtonColor; +/// 右边按钮颜色 +@property (nonatomic, strong) UIColor * _Nonnull rightButtonColor; +/// 中间标题颜色 +@property (nonatomic, strong) UIColor * _Nonnull centerLabelColor; +/// 分割线颜色 +@property (nonatomic, strong) UIColor * _Nonnull lineColor; +/// 强制使用某语言的编码 +@property (nonatomic, copy) NSString * _Nullable languageCode; +/// 动画时长 +@property (nonatomic) NSTimeInterval animateDuration; +@end + + + +SWIFT_PROTOCOL("_TtP12CSPickerView18PickerViewDelegate_") +@protocol PickerViewDelegate +- (void)singleColDidSelecte:(NSInteger)selectedIndex selectedValue:(NSString * _Nonnull)selectedValue; +- (void)multipleColsDidSelecte:(NSArray * _Nonnull)selectedIndexs selectedValues:(NSArray * _Nonnull)selectedValues; +- (void)dateDidSelecte:(NSDate * _Nonnull)selectedDate; +@end + + +SWIFT_CLASS("_TtC12CSPickerView17PickerViewManager") +@interface PickerViewManager : UIView +- (nonnull instancetype)initWithFrame:(CGRect)frame SWIFT_UNAVAILABLE; +- (nullable instancetype)initWithCoder:(NSCoder * _Nonnull)aDecoder OBJC_DESIGNATED_INITIALIZER SWIFT_UNAVAILABLE; +@end + + +@interface PickerViewManager (SWIFT_EXTENSION(CSPickerView)) +/// 把self从window中移除 +- (void)dimissWithCompletion:(void (^ _Nullable)(BOOL))completion; +@end + + + +@interface PickerViewManager (SWIFT_EXTENSION(CSPickerView)) +/// 多列不关联选择器 +/// \param toolBarTitle 标题 +/// +/// \param data 数据;为空时,会弹出提示框提示数据为空 +/// +/// \param defaultSelectedIndexs 默认选中的每一列的行数;当默认索引不在合理范围内,会默认显示第一个,默认索引数组数量不做限制,已兼容 +/// +/// \param cancelAction 取消回调 +/// +/// \param sureAction 确定回调 +/// ++ (void)showMultipleColsPicker:(NSString * _Nonnull)toolBarTitle data:(NSArray *> * _Nonnull)data defaultSelectedIndexs:(NSArray * _Nullable)defaultSelectedIndexs cancelAction:(void (^ _Nullable)(void))cancelAction sureAction:(void (^ _Nullable)(NSArray * _Nonnull, NSArray * _Nonnull))sureAction; +/// 城市选择器 +/// \param toolBarTitle 标题 +/// +/// \param type 显示样式类型 +/// +/// \param defaultSelectedValues 默认选中的每一列的值, 注意不是行数;当默认值不存在时,会默认显示第一个,默认数据数组数量不做限制,已兼容 +/// +/// \param cancelAction 取消回调 +/// +/// \param sureAction 确定回调 +/// ++ (void)showCitiesPicker:(NSString * _Nonnull)toolBarTitle type:(enum CityPickStyle)type defaultSelectedValues:(NSArray * _Nullable)defaultSelectedValues cancelAction:(void (^ _Nullable)(void))cancelAction sureAction:(void (^ _Nullable)(NSArray * _Nonnull, NSArray * _Nonnull))sureAction; +/// 日期选择器 +/// \param toolBarTitle 标题 +/// +/// \param datePickerSetting 可配置UIDatePicker的样式 +/// +/// \param cancelAction 取消回调 +/// +/// \param sureAction 确定回调 +/// ++ (void)showDatePicker:(NSString * _Nonnull)toolBarTitle datePickerSetting:(DatePickerSetting * _Nonnull)datePickerSetting cancelAction:(void (^ _Nullable)(void))cancelAction sureAction:(void (^ _Nullable)(NSDate * _Nonnull))sureAction; +@end + +@class NSBundle; + +SWIFT_CLASS("_TtC12CSPickerView15PickerViewUtils") +@interface PickerViewUtils : NSObject +SWIFT_CLASS_PROPERTY(@property (nonatomic, class, readonly, strong) NSBundle * _Nullable resoureBundle;) ++ (NSBundle * _Nullable)resoureBundle SWIFT_WARN_UNUSED_RESULT; +SWIFT_CLASS_PROPERTY(@property (nonatomic, class, readonly, copy) NSString * _Nullable addressPlistPath;) ++ (NSString * _Nullable)addressPlistPath SWIFT_WARN_UNUSED_RESULT; ++ (NSString * _Nullable)localizedStringWithKey:(NSString * _Nonnull)key defaultValue:(NSString * _Nullable)defaultValue SWIFT_WARN_UNUSED_RESULT; +- (nonnull instancetype)init OBJC_DESIGNATED_INITIALIZER; +@end + + +@interface PickerViewUtils (SWIFT_EXTENSION(CSPickerView)) ++ (NSString * _Nonnull)formatDateWithDate:(NSDate * _Nonnull)date formatStr:(NSString * _Nonnull)formatStr SWIFT_WARN_UNUSED_RESULT; ++ (NSDate * _Nullable)toDateWithDateStr:(NSString * _Nullable)dateStr dateTypeStr:(NSString * _Nonnull)dateTypeStr SWIFT_WARN_UNUSED_RESULT; +@end + + +SWIFT_CLASS("_TtC12CSPickerView16SelectPickerView") +@interface SelectPickerView : UIView +/// 数据 +@property (nonatomic, copy) NSArray * _Nonnull titleArr; +/// 清空按钮闭包 +@property (nonatomic, copy) void (^ _Nullable cancelAction)(void); +/// 确定按钮闭包,多选 +@property (nonatomic, copy) void (^ _Nullable sureAction)(NSArray * _Nonnull, NSArray * _Nonnull); +/// 确定按钮闭包,单选 +@property (nonatomic, copy) void (^ _Nullable singleSureAction)(NSInteger, NSString * _Nonnull); +- (nonnull instancetype)initWithFrame:(CGRect)frame SWIFT_UNAVAILABLE; +- (nullable instancetype)initWithCoder:(NSCoder * _Nonnull)coder SWIFT_UNAVAILABLE; +- (void)layoutSubviews; +@end + +@class UITableView; +@class UITableViewCell; + +@interface SelectPickerView (SWIFT_EXTENSION(CSPickerView)) +- (NSInteger)tableView:(UITableView * _Nonnull)tableView numberOfRowsInSection:(NSInteger)section SWIFT_WARN_UNUSED_RESULT; +- (UITableViewCell * _Nonnull)tableView:(UITableView * _Nonnull)tableView cellForRowAtIndexPath:(NSIndexPath * _Nonnull)indexPath SWIFT_WARN_UNUSED_RESULT; +@end + + +@interface SelectPickerView (SWIFT_EXTENSION(CSPickerView)) +- (void)tableView:(UITableView * _Nonnull)tableView didSelectRowAtIndexPath:(NSIndexPath * _Nonnull)indexPath; +- (void)tableView:(UITableView * _Nonnull)tableView willDisplayCell:(UITableViewCell * _Nonnull)cell forRowAtIndexPath:(NSIndexPath * _Nonnull)indexPath; +@end + + +@interface SelectPickerView (SWIFT_EXTENSION(CSPickerView)) +/// 展示多选view +/// \param title 标题 +/// +/// \param data 数据 +/// +/// \param defaultSelectedIndex 默认选中索引 +/// +/// \param cancelAction 取消回调 +/// +/// \param sureAction 确定回调 +/// ++ (void)showViewWithTitle:(NSString * _Nonnull)title data:(NSArray * _Nonnull)data defaultSelectedIndexs:(NSArray * _Nullable)defaultSelectedIndexs cancelAction:(void (^ _Nonnull)(void))cancelAction sureAction:(void (^ _Nonnull)(NSArray * _Nonnull, NSArray * _Nonnull))sureAction; +/// 获取多选view +/// \param title 标题 +/// +/// \param data 数据 +/// +/// \param defaultSelectedIndexs 默认选中索引,如果为nil,表示都不选中 +/// +/// +/// returns: +/// SelectPickerView ++ (SelectPickerView * _Nullable)getViewWithTitle:(NSString * _Nonnull)title data:(NSArray * _Nonnull)data defaultSelectedIndexs:(NSArray * _Nullable)defaultSelectedIndexs SWIFT_WARN_UNUSED_RESULT; +/// 弹出框显示 +- (void)showWithCompletion:(void (^ _Nullable)(BOOL))completion; +/// 弹出框消失 +- (void)dismissWithCompletion:(void (^ _Nullable)(BOOL))completion; +@end + + +SWIFT_CLASS("_TtC12CSPickerView11ToolBarView") +@interface ToolBarView : UIView +@property (nonatomic, copy) NSString * _Nonnull title; +@property (nonatomic, copy) void (^ _Nullable sureAction)(void); +@property (nonatomic, copy) void (^ _Nullable cancelAction)(void); +- (nonnull instancetype)initWithFrame:(CGRect)frame OBJC_DESIGNATED_INITIALIZER; +- (nullable instancetype)initWithCoder:(NSCoder * _Nonnull)aDecoder OBJC_DESIGNATED_INITIALIZER SWIFT_UNAVAILABLE; +- (void)layoutSubviews; +@end + +#if __has_attribute(external_source_symbol) +# pragma clang attribute pop +#endif +#pragma clang diagnostic pop +#endif + +#elif defined(__ARM_ARCH_7A__) && __ARM_ARCH_7A__ +// Generated by Apple Swift version 5.3.2 (swiftlang-1200.0.45 clang-1200.0.32.28) +#ifndef CSPICKERVIEW_SWIFT_H +#define CSPICKERVIEW_SWIFT_H +#pragma clang diagnostic push +#pragma clang diagnostic ignored "-Wgcc-compat" + +#if !defined(__has_include) +# define __has_include(x) 0 +#endif +#if !defined(__has_attribute) +# define __has_attribute(x) 0 +#endif +#if !defined(__has_feature) +# define __has_feature(x) 0 +#endif +#if !defined(__has_warning) +# define __has_warning(x) 0 +#endif + +#if __has_include() +# include +#endif + +#pragma clang diagnostic ignored "-Wauto-import" +#include +#include +#include +#include + +#if !defined(SWIFT_TYPEDEFS) +# define SWIFT_TYPEDEFS 1 +# if __has_include() +# include +# elif !defined(__cplusplus) +typedef uint_least16_t char16_t; +typedef uint_least32_t char32_t; +# endif +typedef float swift_float2 __attribute__((__ext_vector_type__(2))); +typedef float swift_float3 __attribute__((__ext_vector_type__(3))); +typedef float swift_float4 __attribute__((__ext_vector_type__(4))); +typedef double swift_double2 __attribute__((__ext_vector_type__(2))); +typedef double swift_double3 __attribute__((__ext_vector_type__(3))); +typedef double swift_double4 __attribute__((__ext_vector_type__(4))); +typedef int swift_int2 __attribute__((__ext_vector_type__(2))); +typedef int swift_int3 __attribute__((__ext_vector_type__(3))); +typedef int swift_int4 __attribute__((__ext_vector_type__(4))); +typedef unsigned int swift_uint2 __attribute__((__ext_vector_type__(2))); +typedef unsigned int swift_uint3 __attribute__((__ext_vector_type__(3))); +typedef unsigned int swift_uint4 __attribute__((__ext_vector_type__(4))); +#endif + +#if !defined(SWIFT_PASTE) +# define SWIFT_PASTE_HELPER(x, y) x##y +# define SWIFT_PASTE(x, y) SWIFT_PASTE_HELPER(x, y) +#endif +#if !defined(SWIFT_METATYPE) +# define SWIFT_METATYPE(X) Class +#endif +#if !defined(SWIFT_CLASS_PROPERTY) +# if __has_feature(objc_class_property) +# define SWIFT_CLASS_PROPERTY(...) __VA_ARGS__ +# else +# define SWIFT_CLASS_PROPERTY(...) +# endif +#endif + +#if __has_attribute(objc_runtime_name) +# define SWIFT_RUNTIME_NAME(X) __attribute__((objc_runtime_name(X))) +#else +# define SWIFT_RUNTIME_NAME(X) +#endif +#if __has_attribute(swift_name) +# define SWIFT_COMPILE_NAME(X) __attribute__((swift_name(X))) +#else +# define SWIFT_COMPILE_NAME(X) +#endif +#if __has_attribute(objc_method_family) +# define SWIFT_METHOD_FAMILY(X) __attribute__((objc_method_family(X))) +#else +# define SWIFT_METHOD_FAMILY(X) +#endif +#if __has_attribute(noescape) +# define SWIFT_NOESCAPE __attribute__((noescape)) +#else +# define SWIFT_NOESCAPE +#endif +#if __has_attribute(ns_consumed) +# define SWIFT_RELEASES_ARGUMENT __attribute__((ns_consumed)) +#else +# define SWIFT_RELEASES_ARGUMENT +#endif +#if __has_attribute(warn_unused_result) +# define SWIFT_WARN_UNUSED_RESULT __attribute__((warn_unused_result)) +#else +# define SWIFT_WARN_UNUSED_RESULT +#endif +#if __has_attribute(noreturn) +# define SWIFT_NORETURN __attribute__((noreturn)) +#else +# define SWIFT_NORETURN +#endif +#if !defined(SWIFT_CLASS_EXTRA) +# define SWIFT_CLASS_EXTRA +#endif +#if !defined(SWIFT_PROTOCOL_EXTRA) +# define SWIFT_PROTOCOL_EXTRA +#endif +#if !defined(SWIFT_ENUM_EXTRA) +# define SWIFT_ENUM_EXTRA +#endif +#if !defined(SWIFT_CLASS) +# if __has_attribute(objc_subclassing_restricted) +# define SWIFT_CLASS(SWIFT_NAME) SWIFT_RUNTIME_NAME(SWIFT_NAME) __attribute__((objc_subclassing_restricted)) SWIFT_CLASS_EXTRA +# define SWIFT_CLASS_NAMED(SWIFT_NAME) __attribute__((objc_subclassing_restricted)) SWIFT_COMPILE_NAME(SWIFT_NAME) SWIFT_CLASS_EXTRA +# else +# define SWIFT_CLASS(SWIFT_NAME) SWIFT_RUNTIME_NAME(SWIFT_NAME) SWIFT_CLASS_EXTRA +# define SWIFT_CLASS_NAMED(SWIFT_NAME) SWIFT_COMPILE_NAME(SWIFT_NAME) SWIFT_CLASS_EXTRA +# endif +#endif +#if !defined(SWIFT_RESILIENT_CLASS) +# if __has_attribute(objc_class_stub) +# define SWIFT_RESILIENT_CLASS(SWIFT_NAME) SWIFT_CLASS(SWIFT_NAME) __attribute__((objc_class_stub)) +# define SWIFT_RESILIENT_CLASS_NAMED(SWIFT_NAME) __attribute__((objc_class_stub)) SWIFT_CLASS_NAMED(SWIFT_NAME) +# else +# define SWIFT_RESILIENT_CLASS(SWIFT_NAME) SWIFT_CLASS(SWIFT_NAME) +# define SWIFT_RESILIENT_CLASS_NAMED(SWIFT_NAME) SWIFT_CLASS_NAMED(SWIFT_NAME) +# endif +#endif + +#if !defined(SWIFT_PROTOCOL) +# define SWIFT_PROTOCOL(SWIFT_NAME) SWIFT_RUNTIME_NAME(SWIFT_NAME) SWIFT_PROTOCOL_EXTRA +# define SWIFT_PROTOCOL_NAMED(SWIFT_NAME) SWIFT_COMPILE_NAME(SWIFT_NAME) SWIFT_PROTOCOL_EXTRA +#endif + +#if !defined(SWIFT_EXTENSION) +# define SWIFT_EXTENSION(M) SWIFT_PASTE(M##_Swift_, __LINE__) +#endif + +#if !defined(OBJC_DESIGNATED_INITIALIZER) +# if __has_attribute(objc_designated_initializer) +# define OBJC_DESIGNATED_INITIALIZER __attribute__((objc_designated_initializer)) +# else +# define OBJC_DESIGNATED_INITIALIZER +# endif +#endif +#if !defined(SWIFT_ENUM_ATTR) +# if defined(__has_attribute) && __has_attribute(enum_extensibility) +# define SWIFT_ENUM_ATTR(_extensibility) __attribute__((enum_extensibility(_extensibility))) +# else +# define SWIFT_ENUM_ATTR(_extensibility) +# endif +#endif +#if !defined(SWIFT_ENUM) +# define SWIFT_ENUM(_type, _name, _extensibility) enum _name : _type _name; enum SWIFT_ENUM_ATTR(_extensibility) SWIFT_ENUM_EXTRA _name : _type +# if __has_feature(generalized_swift_name) +# define SWIFT_ENUM_NAMED(_type, _name, SWIFT_NAME, _extensibility) enum _name : _type _name SWIFT_COMPILE_NAME(SWIFT_NAME); enum SWIFT_COMPILE_NAME(SWIFT_NAME) SWIFT_ENUM_ATTR(_extensibility) SWIFT_ENUM_EXTRA _name : _type +# else +# define SWIFT_ENUM_NAMED(_type, _name, SWIFT_NAME, _extensibility) SWIFT_ENUM(_type, _name, _extensibility) +# endif +#endif +#if !defined(SWIFT_UNAVAILABLE) +# define SWIFT_UNAVAILABLE __attribute__((unavailable)) +#endif +#if !defined(SWIFT_UNAVAILABLE_MSG) +# define SWIFT_UNAVAILABLE_MSG(msg) __attribute__((unavailable(msg))) +#endif +#if !defined(SWIFT_AVAILABILITY) +# define SWIFT_AVAILABILITY(plat, ...) __attribute__((availability(plat, __VA_ARGS__))) +#endif +#if !defined(SWIFT_WEAK_IMPORT) +# define SWIFT_WEAK_IMPORT __attribute__((weak_import)) +#endif +#if !defined(SWIFT_DEPRECATED) +# define SWIFT_DEPRECATED __attribute__((deprecated)) +#endif +#if !defined(SWIFT_DEPRECATED_MSG) +# define SWIFT_DEPRECATED_MSG(...) __attribute__((deprecated(__VA_ARGS__))) +#endif +#if __has_feature(attribute_diagnose_if_objc) +# define SWIFT_DEPRECATED_OBJC(Msg) __attribute__((diagnose_if(1, Msg, "warning"))) +#else +# define SWIFT_DEPRECATED_OBJC(Msg) SWIFT_DEPRECATED_MSG(Msg) +#endif +#if !defined(IBSegueAction) +# define IBSegueAction +#endif +#if __has_feature(modules) +#if __has_warning("-Watimport-in-framework-header") +#pragma clang diagnostic ignored "-Watimport-in-framework-header" +#endif +@import CoreGraphics; +@import Foundation; +@import ObjectiveC; +@import UIKit; +#endif + +#pragma clang diagnostic ignored "-Wproperty-attribute-mismatch" +#pragma clang diagnostic ignored "-Wduplicate-method-arg" +#if __has_warning("-Wpragma-clang-attribute") +# pragma clang diagnostic ignored "-Wpragma-clang-attribute" +#endif +#pragma clang diagnostic ignored "-Wunknown-pragmas" +#pragma clang diagnostic ignored "-Wnullability" + +#if __has_attribute(external_source_symbol) +# pragma push_macro("any") +# undef any +# pragma clang attribute push(__attribute__((external_source_symbol(language="Swift", defined_in="CSPickerView",generated_declaration))), apply_to=any(function,enum,objc_interface,objc_category,objc_protocol)) +# pragma pop_macro("any") +#endif + +/// 城市选择样式 +typedef SWIFT_ENUM(NSInteger, CityPickStyle, open) { +/// 省 + CityPickStyleProvince = 0, +/// 市 + CityPickStyleCity = 1, +/// 区 + CityPickStyleArea = 2, +}; + + +/// 时间选择设置 +SWIFT_CLASS("_TtC12CSPickerView17DatePickerSetting") +@interface DatePickerSetting : NSObject +/// 默认选中时间 +@property (nonatomic, copy) NSDate * _Nonnull date; +/// 时间样式 +@property (nonatomic) UIDatePickerMode dateMode; +/// 最小时间 +@property (nonatomic, copy) NSDate * _Nullable minimumDate; +/// 最大时间 +@property (nonatomic, copy) NSDate * _Nullable maximumDate; +/// 构造函数 +- (nonnull instancetype)init OBJC_DESIGNATED_INITIALIZER; +@end + +@class UILabel; +@class UIButton; +@class NSCoder; + +/// 起止时间弹出框 +SWIFT_CLASS("_TtC12CSPickerView22DurationDatePickerView") +@interface DurationDatePickerView : UIView +/// 选择日期是否可大于现在,默认true +@property (nonatomic) BOOL canGreatNow; +/// 选择日期是否可小于现在,默认true +@property (nonatomic) BOOL canLessNow; +/// 确定闭包 +@property (nonatomic, copy) void (^ _Nullable sureBlock)(NSString * _Nonnull, NSString * _Nonnull); +/// 取消闭包 +@property (nonatomic, copy) void (^ _Nullable cancelBlock)(void); +@property (nonatomic, strong) UILabel * _Nonnull titleLabel; +@property (nonatomic, strong) UIButton * _Nonnull startBtn; +@property (nonatomic, strong) UIButton * _Nonnull endBtn; +@property (nonatomic, strong) UIButton * _Nonnull cancelBtn; +@property (nonatomic, strong) UIButton * _Nonnull confirmBtn; +- (nonnull instancetype)initWithFrame:(CGRect)frame SWIFT_UNAVAILABLE; +- (nullable instancetype)initWithCoder:(NSCoder * _Nonnull)aDecoder OBJC_DESIGNATED_INITIALIZER SWIFT_UNAVAILABLE; +@end + + +enum DurationDatePickerViewDateType : NSInteger; + +@interface DurationDatePickerView (SWIFT_EXTENSION(CSPickerView)) +/// 展示起止时间弹出框 +/// \param startDate 开始时间 +/// +/// \param endDate 结束时间 +/// +/// \param dateType 时间类型 +/// ++ (DurationDatePickerView * _Nonnull)getPopupViewWithStartDate:(NSDate * _Nonnull)startDate endDate:(NSDate * _Nonnull)endDate dateType:(enum DurationDatePickerViewDateType)dateType SWIFT_WARN_UNUSED_RESULT; +/// 弹出框显示 +- (void)showWithCompletion:(void (^ _Nullable)(BOOL))completion; +/// 弹出框消失 +- (void)dismissWithCompletion:(void (^ _Nullable)(BOOL))completion; +@end + + + +/// 选择器样式 +typedef SWIFT_ENUM(NSInteger, DurationDatePickerViewDateType, open) { +/// 年月日 + DurationDatePickerViewDateTypeYMD = 0, +/// 年月日时分 + DurationDatePickerViewDateTypeYMDHM = 1, +}; + +/// 选择器样式 +typedef SWIFT_ENUM(NSInteger, PickerStyles, open) { +/// 单行 + PickerStylesSingle = 0, +/// 多行 + PickerStylesMultiple = 1, +/// 多行联动 + PickerStylesMultipleAssociated = 2, +/// 日期 + PickerStylesDate = 3, +}; + + +SWIFT_CLASS("_TtC12CSPickerView10PickerView") +@interface PickerView : UIView +- (nonnull instancetype)initWithPickerStyle:(enum PickerStyles)pickerStyle OBJC_DESIGNATED_INITIALIZER; +- (nonnull instancetype)initWithFrame:(CGRect)frame SWIFT_UNAVAILABLE; +- (nullable instancetype)initWithCoder:(NSCoder * _Nonnull)aDecoder SWIFT_UNAVAILABLE; +- (void)layoutSubviews; +@end + + + +@interface PickerView (SWIFT_EXTENSION(CSPickerView)) +/// 多列不关联 +/// \param toolBarTitle 工具栏标题 +/// +/// \param multipleColsData 数据源 ~> [[String]] +/// +/// \param defaultSelectedIndexs 默认选中索引 +/// +/// \param cancelAction 取消回调 +/// +/// \param doneAction 完成回调 +/// +/// +/// returns: +/// PickerView ++ (PickerView * _Nonnull)multipleCosPicker:(NSString * _Nonnull)toolBarTitle multipleColsData:(NSArray *> * _Nonnull)multipleColsData defaultSelectedIndexs:(NSArray * _Nullable)defaultSelectedIndexs cancelAction:(void (^ _Nullable)(void))cancelAction doneAction:(void (^ _Nullable)(NSArray * _Nonnull, NSArray * _Nonnull))doneAction SWIFT_WARN_UNUSED_RESULT; +/// 城市选择器 +/// \param toolBarTitle 工具栏标题 +/// +/// \param defaultSelectedValues 默认选中值 +/// +/// \param cancelAction 取消回调 +/// +/// \param doneAction 完成回调 +/// +/// \param type 显示样式类型 +/// +/// +/// returns: +/// PickerView ++ (PickerView * _Nonnull)citiesPicker:(NSString * _Nonnull)toolBarTitle type:(enum CityPickStyle)type defaultSelectedValues:(NSArray * _Nullable)defaultSelectedValues cancelAction:(void (^ _Nullable)(void))cancelAction doneAction:(void (^ _Nullable)(NSArray * _Nonnull, NSArray * _Nonnull))doneAction SWIFT_WARN_UNUSED_RESULT; +/// 时间选择器 +/// \param toolBarTitle 工具栏标题 +/// +/// \param datePickerSetting date配置 +/// +/// \param cancelAction 取消回调 +/// +/// \param doneAction 完成回调 +/// +/// +/// returns: +/// PickerView ++ (PickerView * _Nonnull)datePicker:(NSString * _Nonnull)toolBarTitle datePickerSetting:(DatePickerSetting * _Nonnull)datePickerSetting cancelAction:(void (^ _Nullable)(void))cancelAction doneAction:(void (^ _Nullable)(NSDate * _Nonnull))doneAction SWIFT_WARN_UNUSED_RESULT; +@end + +@class UIPickerView; + +@interface PickerView (SWIFT_EXTENSION(CSPickerView)) +- (NSInteger)numberOfComponentsInPickerView:(UIPickerView * _Nonnull)pickerView SWIFT_WARN_UNUSED_RESULT; +- (NSInteger)pickerView:(UIPickerView * _Nonnull)pickerView numberOfRowsInComponent:(NSInteger)component SWIFT_WARN_UNUSED_RESULT; +- (void)pickerView:(UIPickerView * _Nonnull)pickerView didSelectRow:(NSInteger)row inComponent:(NSInteger)component; +- (UIView * _Nonnull)pickerView:(UIPickerView * _Nonnull)pickerView viewForRow:(NSInteger)row forComponent:(NSInteger)component reusingView:(UIView * _Nullable)view SWIFT_WARN_UNUSED_RESULT; +@end + +@class UIColor; + +SWIFT_CLASS("_TtC12CSPickerView16PickerViewConfig") +@interface PickerViewConfig : NSObject +- (nonnull instancetype)init SWIFT_UNAVAILABLE; ++ (nonnull instancetype)new SWIFT_UNAVAILABLE_MSG("-init is unavailable"); +SWIFT_CLASS_PROPERTY(@property (nonatomic, class, readonly, strong) PickerViewConfig * _Nonnull shared;) ++ (PickerViewConfig * _Nonnull)shared SWIFT_WARN_UNUSED_RESULT; +/// 主背景色 +@property (nonatomic, strong) UIColor * _Nonnull mainBackgroundColor; +/// 蒙版颜色 +@property (nonatomic, strong) UIColor * _Nonnull maskColor; +/// 主文字颜色 +@property (nonatomic, strong) UIColor * _Nonnull mainTextColor; +/// 左边按钮颜色 +@property (nonatomic, strong) UIColor * _Nonnull leftButtonColor; +/// 右边按钮颜色 +@property (nonatomic, strong) UIColor * _Nonnull rightButtonColor; +/// 中间标题颜色 +@property (nonatomic, strong) UIColor * _Nonnull centerLabelColor; +/// 分割线颜色 +@property (nonatomic, strong) UIColor * _Nonnull lineColor; +/// 强制使用某语言的编码 +@property (nonatomic, copy) NSString * _Nullable languageCode; +/// 动画时长 +@property (nonatomic) NSTimeInterval animateDuration; +@end + + + +SWIFT_PROTOCOL("_TtP12CSPickerView18PickerViewDelegate_") +@protocol PickerViewDelegate +- (void)singleColDidSelecte:(NSInteger)selectedIndex selectedValue:(NSString * _Nonnull)selectedValue; +- (void)multipleColsDidSelecte:(NSArray * _Nonnull)selectedIndexs selectedValues:(NSArray * _Nonnull)selectedValues; +- (void)dateDidSelecte:(NSDate * _Nonnull)selectedDate; +@end + + +SWIFT_CLASS("_TtC12CSPickerView17PickerViewManager") +@interface PickerViewManager : UIView +- (nonnull instancetype)initWithFrame:(CGRect)frame SWIFT_UNAVAILABLE; +- (nullable instancetype)initWithCoder:(NSCoder * _Nonnull)aDecoder OBJC_DESIGNATED_INITIALIZER SWIFT_UNAVAILABLE; +@end + + +@interface PickerViewManager (SWIFT_EXTENSION(CSPickerView)) +/// 把self从window中移除 +- (void)dimissWithCompletion:(void (^ _Nullable)(BOOL))completion; +@end + + + +@interface PickerViewManager (SWIFT_EXTENSION(CSPickerView)) +/// 多列不关联选择器 +/// \param toolBarTitle 标题 +/// +/// \param data 数据;为空时,会弹出提示框提示数据为空 +/// +/// \param defaultSelectedIndexs 默认选中的每一列的行数;当默认索引不在合理范围内,会默认显示第一个,默认索引数组数量不做限制,已兼容 +/// +/// \param cancelAction 取消回调 +/// +/// \param sureAction 确定回调 +/// ++ (void)showMultipleColsPicker:(NSString * _Nonnull)toolBarTitle data:(NSArray *> * _Nonnull)data defaultSelectedIndexs:(NSArray * _Nullable)defaultSelectedIndexs cancelAction:(void (^ _Nullable)(void))cancelAction sureAction:(void (^ _Nullable)(NSArray * _Nonnull, NSArray * _Nonnull))sureAction; +/// 城市选择器 +/// \param toolBarTitle 标题 +/// +/// \param type 显示样式类型 +/// +/// \param defaultSelectedValues 默认选中的每一列的值, 注意不是行数;当默认值不存在时,会默认显示第一个,默认数据数组数量不做限制,已兼容 +/// +/// \param cancelAction 取消回调 +/// +/// \param sureAction 确定回调 +/// ++ (void)showCitiesPicker:(NSString * _Nonnull)toolBarTitle type:(enum CityPickStyle)type defaultSelectedValues:(NSArray * _Nullable)defaultSelectedValues cancelAction:(void (^ _Nullable)(void))cancelAction sureAction:(void (^ _Nullable)(NSArray * _Nonnull, NSArray * _Nonnull))sureAction; +/// 日期选择器 +/// \param toolBarTitle 标题 +/// +/// \param datePickerSetting 可配置UIDatePicker的样式 +/// +/// \param cancelAction 取消回调 +/// +/// \param sureAction 确定回调 +/// ++ (void)showDatePicker:(NSString * _Nonnull)toolBarTitle datePickerSetting:(DatePickerSetting * _Nonnull)datePickerSetting cancelAction:(void (^ _Nullable)(void))cancelAction sureAction:(void (^ _Nullable)(NSDate * _Nonnull))sureAction; +@end + +@class NSBundle; + +SWIFT_CLASS("_TtC12CSPickerView15PickerViewUtils") +@interface PickerViewUtils : NSObject +SWIFT_CLASS_PROPERTY(@property (nonatomic, class, readonly, strong) NSBundle * _Nullable resoureBundle;) ++ (NSBundle * _Nullable)resoureBundle SWIFT_WARN_UNUSED_RESULT; +SWIFT_CLASS_PROPERTY(@property (nonatomic, class, readonly, copy) NSString * _Nullable addressPlistPath;) ++ (NSString * _Nullable)addressPlistPath SWIFT_WARN_UNUSED_RESULT; ++ (NSString * _Nullable)localizedStringWithKey:(NSString * _Nonnull)key defaultValue:(NSString * _Nullable)defaultValue SWIFT_WARN_UNUSED_RESULT; +- (nonnull instancetype)init OBJC_DESIGNATED_INITIALIZER; +@end + + +@interface PickerViewUtils (SWIFT_EXTENSION(CSPickerView)) ++ (NSString * _Nonnull)formatDateWithDate:(NSDate * _Nonnull)date formatStr:(NSString * _Nonnull)formatStr SWIFT_WARN_UNUSED_RESULT; ++ (NSDate * _Nullable)toDateWithDateStr:(NSString * _Nullable)dateStr dateTypeStr:(NSString * _Nonnull)dateTypeStr SWIFT_WARN_UNUSED_RESULT; +@end + + +SWIFT_CLASS("_TtC12CSPickerView16SelectPickerView") +@interface SelectPickerView : UIView +/// 数据 +@property (nonatomic, copy) NSArray * _Nonnull titleArr; +/// 清空按钮闭包 +@property (nonatomic, copy) void (^ _Nullable cancelAction)(void); +/// 确定按钮闭包,多选 +@property (nonatomic, copy) void (^ _Nullable sureAction)(NSArray * _Nonnull, NSArray * _Nonnull); +/// 确定按钮闭包,单选 +@property (nonatomic, copy) void (^ _Nullable singleSureAction)(NSInteger, NSString * _Nonnull); +- (nonnull instancetype)initWithFrame:(CGRect)frame SWIFT_UNAVAILABLE; +- (nullable instancetype)initWithCoder:(NSCoder * _Nonnull)coder SWIFT_UNAVAILABLE; +- (void)layoutSubviews; +@end + +@class UITableView; +@class UITableViewCell; + +@interface SelectPickerView (SWIFT_EXTENSION(CSPickerView)) +- (NSInteger)tableView:(UITableView * _Nonnull)tableView numberOfRowsInSection:(NSInteger)section SWIFT_WARN_UNUSED_RESULT; +- (UITableViewCell * _Nonnull)tableView:(UITableView * _Nonnull)tableView cellForRowAtIndexPath:(NSIndexPath * _Nonnull)indexPath SWIFT_WARN_UNUSED_RESULT; +@end + + +@interface SelectPickerView (SWIFT_EXTENSION(CSPickerView)) +- (void)tableView:(UITableView * _Nonnull)tableView didSelectRowAtIndexPath:(NSIndexPath * _Nonnull)indexPath; +- (void)tableView:(UITableView * _Nonnull)tableView willDisplayCell:(UITableViewCell * _Nonnull)cell forRowAtIndexPath:(NSIndexPath * _Nonnull)indexPath; +@end + + +@interface SelectPickerView (SWIFT_EXTENSION(CSPickerView)) +/// 展示多选view +/// \param title 标题 +/// +/// \param data 数据 +/// +/// \param defaultSelectedIndex 默认选中索引 +/// +/// \param cancelAction 取消回调 +/// +/// \param sureAction 确定回调 +/// ++ (void)showViewWithTitle:(NSString * _Nonnull)title data:(NSArray * _Nonnull)data defaultSelectedIndexs:(NSArray * _Nullable)defaultSelectedIndexs cancelAction:(void (^ _Nonnull)(void))cancelAction sureAction:(void (^ _Nonnull)(NSArray * _Nonnull, NSArray * _Nonnull))sureAction; +/// 获取多选view +/// \param title 标题 +/// +/// \param data 数据 +/// +/// \param defaultSelectedIndexs 默认选中索引,如果为nil,表示都不选中 +/// +/// +/// returns: +/// SelectPickerView ++ (SelectPickerView * _Nullable)getViewWithTitle:(NSString * _Nonnull)title data:(NSArray * _Nonnull)data defaultSelectedIndexs:(NSArray * _Nullable)defaultSelectedIndexs SWIFT_WARN_UNUSED_RESULT; +/// 弹出框显示 +- (void)showWithCompletion:(void (^ _Nullable)(BOOL))completion; +/// 弹出框消失 +- (void)dismissWithCompletion:(void (^ _Nullable)(BOOL))completion; +@end + + +SWIFT_CLASS("_TtC12CSPickerView11ToolBarView") +@interface ToolBarView : UIView +@property (nonatomic, copy) NSString * _Nonnull title; +@property (nonatomic, copy) void (^ _Nullable sureAction)(void); +@property (nonatomic, copy) void (^ _Nullable cancelAction)(void); +- (nonnull instancetype)initWithFrame:(CGRect)frame OBJC_DESIGNATED_INITIALIZER; +- (nullable instancetype)initWithCoder:(NSCoder * _Nonnull)aDecoder OBJC_DESIGNATED_INITIALIZER SWIFT_UNAVAILABLE; +- (void)layoutSubviews; +@end + +#if __has_attribute(external_source_symbol) +# pragma clang attribute pop +#endif +#pragma clang diagnostic pop +#endif + +#endif diff --git a/CSPickerView/Frameworks/CSPickerView.framework/Headers/CSPickerViewSDK.h b/CSPickerView/Frameworks/CSPickerView.framework/Headers/CSPickerViewSDK.h new file mode 100644 index 0000000..7a8e20a --- /dev/null +++ b/CSPickerView/Frameworks/CSPickerView.framework/Headers/CSPickerViewSDK.h @@ -0,0 +1,18 @@ +// +// CSPickerViewSDK.h +// CSPickerViewSDK +// +// Created by CoderStar on 2021/6/9. +// + +#import + +//! Project version number for CSPickerViewSDK. +FOUNDATION_EXPORT double CSPickerViewSDKVersionNumber; + +//! Project version string for CSPickerViewSDK. +FOUNDATION_EXPORT const unsigned char CSPickerViewSDKVersionString[]; + +// In this header, you should import all the public headers of your framework using statements like #import + + diff --git a/CSPickerView/Frameworks/CSPickerView.framework/Info.plist b/CSPickerView/Frameworks/CSPickerView.framework/Info.plist new file mode 100644 index 0000000..345e6ed Binary files /dev/null and b/CSPickerView/Frameworks/CSPickerView.framework/Info.plist differ diff --git a/CSPickerView/Frameworks/CSPickerView.framework/Modules/CSPickerView.swiftmodule/Project/arm.swiftsourceinfo b/CSPickerView/Frameworks/CSPickerView.framework/Modules/CSPickerView.swiftmodule/Project/arm.swiftsourceinfo new file mode 100644 index 0000000..dbda621 Binary files /dev/null and b/CSPickerView/Frameworks/CSPickerView.framework/Modules/CSPickerView.swiftmodule/Project/arm.swiftsourceinfo differ diff --git a/CSPickerView/Frameworks/CSPickerView.framework/Modules/CSPickerView.swiftmodule/Project/arm64-apple-ios.swiftsourceinfo b/CSPickerView/Frameworks/CSPickerView.framework/Modules/CSPickerView.swiftmodule/Project/arm64-apple-ios.swiftsourceinfo new file mode 100644 index 0000000..7cdc7ca Binary files /dev/null and b/CSPickerView/Frameworks/CSPickerView.framework/Modules/CSPickerView.swiftmodule/Project/arm64-apple-ios.swiftsourceinfo differ diff --git a/CSPickerView/Frameworks/CSPickerView.framework/Modules/CSPickerView.swiftmodule/Project/arm64.swiftsourceinfo b/CSPickerView/Frameworks/CSPickerView.framework/Modules/CSPickerView.swiftmodule/Project/arm64.swiftsourceinfo new file mode 100644 index 0000000..7cdc7ca Binary files /dev/null and b/CSPickerView/Frameworks/CSPickerView.framework/Modules/CSPickerView.swiftmodule/Project/arm64.swiftsourceinfo differ diff --git a/CSPickerView/Frameworks/CSPickerView.framework/Modules/CSPickerView.swiftmodule/Project/armv7-apple-ios.swiftsourceinfo b/CSPickerView/Frameworks/CSPickerView.framework/Modules/CSPickerView.swiftmodule/Project/armv7-apple-ios.swiftsourceinfo new file mode 100644 index 0000000..dbda621 Binary files /dev/null and b/CSPickerView/Frameworks/CSPickerView.framework/Modules/CSPickerView.swiftmodule/Project/armv7-apple-ios.swiftsourceinfo differ diff --git a/CSPickerView/Frameworks/CSPickerView.framework/Modules/CSPickerView.swiftmodule/Project/armv7.swiftsourceinfo b/CSPickerView/Frameworks/CSPickerView.framework/Modules/CSPickerView.swiftmodule/Project/armv7.swiftsourceinfo new file mode 100644 index 0000000..dbda621 Binary files /dev/null and b/CSPickerView/Frameworks/CSPickerView.framework/Modules/CSPickerView.swiftmodule/Project/armv7.swiftsourceinfo differ diff --git a/CSPickerView/Frameworks/CSPickerView.framework/Modules/CSPickerView.swiftmodule/Project/armv7s-apple-ios.swiftsourceinfo b/CSPickerView/Frameworks/CSPickerView.framework/Modules/CSPickerView.swiftmodule/Project/armv7s-apple-ios.swiftsourceinfo new file mode 100644 index 0000000..e77c493 Binary files /dev/null and b/CSPickerView/Frameworks/CSPickerView.framework/Modules/CSPickerView.swiftmodule/Project/armv7s-apple-ios.swiftsourceinfo differ diff --git a/CSPickerView/Frameworks/CSPickerView.framework/Modules/CSPickerView.swiftmodule/Project/armv7s.swiftsourceinfo b/CSPickerView/Frameworks/CSPickerView.framework/Modules/CSPickerView.swiftmodule/Project/armv7s.swiftsourceinfo new file mode 100644 index 0000000..e77c493 Binary files /dev/null and b/CSPickerView/Frameworks/CSPickerView.framework/Modules/CSPickerView.swiftmodule/Project/armv7s.swiftsourceinfo differ diff --git a/CSPickerView/Frameworks/CSPickerView.framework/Modules/CSPickerView.swiftmodule/Project/i386-apple-ios-simulator.swiftsourceinfo b/CSPickerView/Frameworks/CSPickerView.framework/Modules/CSPickerView.swiftmodule/Project/i386-apple-ios-simulator.swiftsourceinfo new file mode 100644 index 0000000..7542393 Binary files /dev/null and b/CSPickerView/Frameworks/CSPickerView.framework/Modules/CSPickerView.swiftmodule/Project/i386-apple-ios-simulator.swiftsourceinfo differ diff --git a/CSPickerView/Frameworks/CSPickerView.framework/Modules/CSPickerView.swiftmodule/Project/i386.swiftsourceinfo b/CSPickerView/Frameworks/CSPickerView.framework/Modules/CSPickerView.swiftmodule/Project/i386.swiftsourceinfo new file mode 100644 index 0000000..7542393 Binary files /dev/null and b/CSPickerView/Frameworks/CSPickerView.framework/Modules/CSPickerView.swiftmodule/Project/i386.swiftsourceinfo differ diff --git a/CSPickerView/Frameworks/CSPickerView.framework/Modules/CSPickerView.swiftmodule/Project/x86_64-apple-ios-simulator.swiftsourceinfo b/CSPickerView/Frameworks/CSPickerView.framework/Modules/CSPickerView.swiftmodule/Project/x86_64-apple-ios-simulator.swiftsourceinfo new file mode 100644 index 0000000..dcecb9d Binary files /dev/null and b/CSPickerView/Frameworks/CSPickerView.framework/Modules/CSPickerView.swiftmodule/Project/x86_64-apple-ios-simulator.swiftsourceinfo differ diff --git a/CSPickerView/Frameworks/CSPickerView.framework/Modules/CSPickerView.swiftmodule/Project/x86_64.swiftsourceinfo b/CSPickerView/Frameworks/CSPickerView.framework/Modules/CSPickerView.swiftmodule/Project/x86_64.swiftsourceinfo new file mode 100644 index 0000000..dcecb9d Binary files /dev/null and b/CSPickerView/Frameworks/CSPickerView.framework/Modules/CSPickerView.swiftmodule/Project/x86_64.swiftsourceinfo differ diff --git a/CSPickerView/Frameworks/CSPickerView.framework/Modules/CSPickerView.swiftmodule/arm.swiftdoc b/CSPickerView/Frameworks/CSPickerView.framework/Modules/CSPickerView.swiftmodule/arm.swiftdoc new file mode 100644 index 0000000..2027037 Binary files /dev/null and b/CSPickerView/Frameworks/CSPickerView.framework/Modules/CSPickerView.swiftmodule/arm.swiftdoc differ diff --git a/CSPickerView/Frameworks/CSPickerView.framework/Modules/CSPickerView.swiftmodule/arm.swiftinterface b/CSPickerView/Frameworks/CSPickerView.framework/Modules/CSPickerView.swiftmodule/arm.swiftinterface new file mode 100644 index 0000000..f607622 --- /dev/null +++ b/CSPickerView/Frameworks/CSPickerView.framework/Modules/CSPickerView.swiftmodule/arm.swiftinterface @@ -0,0 +1,208 @@ +// swift-interface-format-version: 1.0 +// swift-compiler-version: Apple Swift version 5.3.2 (swiftlang-1200.0.45 clang-1200.0.32.28) +// swift-module-flags: -target armv7-apple-ios9.0 -enable-objc-interop -enable-library-evolution -swift-version 5 -enforce-exclusivity=checked -O -module-name CSPickerView +import Foundation +import Swift +import UIKit +@objc public protocol PickerViewDelegate : AnyObject { + @objc func singleColDidSelecte(_ selectedIndex: Swift.Int, selectedValue: Swift.String) + @objc func multipleColsDidSelecte(_ selectedIndexs: [Swift.Int], selectedValues: [Swift.String]) + @objc func dateDidSelecte(_ selectedDate: Foundation.Date) +} +@objc @_inheritsConvenienceInitializers @objcMembers public class DatePickerSetting : ObjectiveC.NSObject { + @objc public var date: Foundation.Date + @objc public var dateMode: UIKit.UIDatePicker.Mode + @objc public var minimumDate: Foundation.Date? + @objc public var maximumDate: Foundation.Date? + @objc override dynamic public init() + @objc deinit +} +@objc public enum PickerStyles : Swift.Int { + case single + case multiple + case multipleAssociated + case date + public typealias RawValue = Swift.Int + public init?(rawValue: Swift.Int) + public var rawValue: Swift.Int { + get + } +} +@objc public enum CityPickStyle : Swift.Int { + case province + case city + case area + public typealias RawValue = Swift.Int + public init?(rawValue: Swift.Int) + public var rawValue: Swift.Int { + get + } +} +@objc @_inheritsConvenienceInitializers @_hasMissingDesignatedInitializers @objcMembers public class PickerView : UIKit.UIView { + public typealias BtnAction = () -> Swift.Void + public typealias SingleDoneAction = (Swift.Int, Swift.String) -> Swift.Void + public typealias MultipleDoneAction = ([Swift.Int], [Swift.String]) -> Swift.Void + public typealias DateDoneAction = (Foundation.Date) -> Swift.Void + public typealias MultipleAssociatedDataType = [[[Swift.String : [Swift.String]?]]] + @objc public init(pickerStyle: CSPickerView.PickerStyles) + @objc override dynamic public func layoutSubviews() + @objc deinit +} +extension PickerView : UIKit.UIPickerViewDelegate, UIKit.UIPickerViewDataSource { + @objc final public func numberOfComponents(in pickerView: UIKit.UIPickerView) -> Swift.Int + @objc final public func pickerView(_ pickerView: UIKit.UIPickerView, numberOfRowsInComponent component: Swift.Int) -> Swift.Int + @objc final public func pickerView(_ pickerView: UIKit.UIPickerView, didSelectRow row: Swift.Int, inComponent component: Swift.Int) + @objc final public func pickerView(_ pickerView: UIKit.UIPickerView, viewForRow row: Swift.Int, forComponent component: Swift.Int, reusing view: UIKit.UIView?) -> UIKit.UIView +} +extension PickerView { + public class func singleColPicker(_ toolBarTitle: Swift.String, singleColData: [Swift.String], defaultIndex: Swift.Int?, cancelAction: CSPickerView.PickerView.BtnAction?, sureAction: CSPickerView.PickerView.SingleDoneAction?) -> CSPickerView.PickerView + @objc dynamic public class func multipleCosPicker(_ toolBarTitle: Swift.String, multipleColsData: [[Swift.String]], defaultSelectedIndexs: [Swift.Int]?, cancelAction: CSPickerView.PickerView.BtnAction?, doneAction: CSPickerView.PickerView.MultipleDoneAction?) -> CSPickerView.PickerView + public class func multipleAssociatedCosPicker(_ toolBarTitle: Swift.String, multipleAssociatedColsData: CSPickerView.PickerView.MultipleAssociatedDataType, defaultSelectedValues: [Swift.String]?, cancelAction: CSPickerView.PickerView.BtnAction?, doneAction: CSPickerView.PickerView.MultipleDoneAction?) -> CSPickerView.PickerView + @objc dynamic public class func citiesPicker(_ toolBarTitle: Swift.String, type: CSPickerView.CityPickStyle, defaultSelectedValues: [Swift.String]?, cancelAction: CSPickerView.PickerView.BtnAction?, doneAction: CSPickerView.PickerView.MultipleDoneAction?) -> CSPickerView.PickerView + @objc dynamic public class func datePicker(_ toolBarTitle: Swift.String, datePickerSetting: CSPickerView.DatePickerSetting, cancelAction: CSPickerView.PickerView.BtnAction?, doneAction: CSPickerView.PickerView.DateDoneAction?) -> CSPickerView.PickerView +} +@objc @_inheritsConvenienceInitializers @objcMembers public class PickerViewUtils : ObjectiveC.NSObject { + @objc public static var resoureBundle: Foundation.Bundle? { + @objc get + } + @objc public static var addressPlistPath: Swift.String? { + @objc get + } + @objc public static func localizedString(key: Swift.String, defaultValue: Swift.String? = nil) -> Swift.String? + @objc deinit + @objc override dynamic public init() +} +extension PickerViewUtils { + @objc public static func formatDate(date: Foundation.Date, formatStr: Swift.String) -> Swift.String + @objc public static func toDate(dateStr: Swift.String?, dateTypeStr: Swift.String) -> Foundation.Date? +} +@objc @_inheritsConvenienceInitializers @_hasMissingDesignatedInitializers @objcMembers public class SelectPickerView : UIKit.UIView { + @objc public var titleArr: [Swift.String] { + @objc get + @objc set + } + @objc public var cancelAction: CSPickerView.PickerViewManager.BtnAction? + @objc public var sureAction: CSPickerView.PickerViewManager.MultipleDoneAction? + @objc public var singleSureAction: CSPickerView.PickerViewManager.SingleDoneAction? + @objc override dynamic public func layoutSubviews() + @objc deinit +} +extension SelectPickerView { + @objc dynamic public class func showView(title: Swift.String, data: [Swift.String], defaultSelectedIndexs: [Swift.Int]?, cancelAction: @escaping CSPickerView.PickerViewManager.BtnAction, sureAction: @escaping CSPickerView.PickerViewManager.MultipleDoneAction) + @objc dynamic public class func getView(title: Swift.String, data: [Swift.String], defaultSelectedIndexs: [Swift.Int]?) -> CSPickerView.SelectPickerView? + public class func showSingleView(title: Swift.String, data: [Swift.String], defaultSelectedIndex: Swift.Int?, cancelAction: @escaping CSPickerView.PickerViewManager.BtnAction, sureAction: @escaping CSPickerView.PickerViewManager.SingleDoneAction) + public class func getSingleView(title: Swift.String, data: [Swift.String], defaultSelectedIndex: Swift.Int?) -> CSPickerView.SelectPickerView? + @objc dynamic public func show(completion: ((Swift.Bool) -> Swift.Void)? = nil) + @objc dynamic public func dismiss(completion: ((Swift.Bool) -> Swift.Void)? = nil) +} +extension SelectPickerView : UIKit.UITableViewDataSource { + @objc dynamic public func tableView(_ tableView: UIKit.UITableView, numberOfRowsInSection section: Swift.Int) -> Swift.Int + @objc dynamic public func tableView(_ tableView: UIKit.UITableView, cellForRowAt indexPath: Foundation.IndexPath) -> UIKit.UITableViewCell +} +extension SelectPickerView : UIKit.UITableViewDelegate { + @objc dynamic public func tableView(_ tableView: UIKit.UITableView, didSelectRowAt indexPath: Foundation.IndexPath) + @objc dynamic public func tableView(_ tableView: UIKit.UITableView, willDisplay cell: UIKit.UITableViewCell, forRowAt indexPath: Foundation.IndexPath) +} +@objc @_inheritsConvenienceInitializers @objcMembers open class ToolBarView : UIKit.UIView { + @objc open var title: Swift.String { + @objc get + @objc set + } + @objc open var sureAction: CSPickerView.PickerViewManager.BtnAction? + @objc open var cancelAction: CSPickerView.PickerViewManager.BtnAction? + @objc override dynamic public init(frame: CoreGraphics.CGRect) + @available(*, unavailable) + @objc required dynamic public init?(coder aDecoder: Foundation.NSCoder) + @objc override dynamic open func layoutSubviews() + @objc deinit +} +@objc public enum DurationDatePickerViewDateType : Swift.Int { + case YMD + case YMDHM + public var formatStr: Swift.String { + get + } + public typealias RawValue = Swift.Int + public init?(rawValue: Swift.Int) + public var rawValue: Swift.Int { + get + } +} +@objc @_inheritsConvenienceInitializers @_hasMissingDesignatedInitializers @objcMembers open class DurationDatePickerView : UIKit.UIView { + public typealias SureBlock = (Swift.String, Swift.String) -> Swift.Void + public typealias CancelBlock = () -> Swift.Void + @objc public var canGreatNow: Swift.Bool + @objc public var canLessNow: Swift.Bool + @objc public var sureBlock: CSPickerView.DurationDatePickerView.SureBlock? + @objc public var cancelBlock: CSPickerView.DurationDatePickerView.CancelBlock? + @objc public var titleLabel: UIKit.UILabel { + @objc get + @objc set + } + @objc public var startBtn: UIKit.UIButton { + @objc get + @objc set + } + @objc public var endBtn: UIKit.UIButton { + @objc get + @objc set + } + @objc public var cancelBtn: UIKit.UIButton { + @objc get + @objc set + } + @objc public var confirmBtn: UIKit.UIButton { + @objc get + @objc set + } + @available(*, unavailable) + @objc required dynamic public init?(coder aDecoder: Foundation.NSCoder) + @objc deinit +} +extension DurationDatePickerView { + @objc dynamic public class func getPopupView(startDate: Foundation.Date, endDate: Foundation.Date, dateType: CSPickerView.DurationDatePickerViewDateType = .YMD) -> CSPickerView.DurationDatePickerView + @objc dynamic public func show(completion: ((Swift.Bool) -> Swift.Void)? = nil) + @objc dynamic public func dismiss(completion: ((Swift.Bool) -> Swift.Void)? = nil) +} +@objc @_inheritsConvenienceInitializers @_hasMissingDesignatedInitializers @objcMembers public class PickerViewConfig : ObjectiveC.NSObject { + @objc public static let shared: CSPickerView.PickerViewConfig + @objc public var mainBackgroundColor: UIKit.UIColor + @objc public var maskColor: UIKit.UIColor + @objc public var mainTextColor: UIKit.UIColor + @objc public var leftButtonColor: UIKit.UIColor + @objc public var rightButtonColor: UIKit.UIColor + @objc public var centerLabelColor: UIKit.UIColor + @objc public var lineColor: UIKit.UIColor + @objc public var languageCode: Swift.String? + @objc public var animateDuration: Swift.Double + @objc deinit +} +@objc @_inheritsConvenienceInitializers @_hasMissingDesignatedInitializers @objcMembers public class PickerViewManager : UIKit.UIView { + public typealias BtnAction = () -> Swift.Void + public typealias SingleDoneAction = (Swift.Int, Swift.String) -> Swift.Void + public typealias MultipleDoneAction = ([Swift.Int], [Swift.String]) -> Swift.Void + public typealias DateDoneAction = (Foundation.Date) -> Swift.Void + public typealias MultipleAssociatedDataType = [[[Swift.String : [Swift.String]?]]] + @available(*, unavailable) + @objc required dynamic public init?(coder aDecoder: Foundation.NSCoder) + @objc deinit +} +extension PickerViewManager { + @objc dynamic public func dimiss(completion: ((Swift.Bool) -> Swift.Void)? = nil) +} +extension PickerViewManager { + public class func showSingleColPicker(_ toolBarTitle: Swift.String, data: [Swift.String], defaultSelectedIndex: Swift.Int?, cancelAction: CSPickerView.PickerViewManager.BtnAction?, sureAction: CSPickerView.PickerViewManager.SingleDoneAction?) + @objc dynamic public class func showMultipleColsPicker(_ toolBarTitle: Swift.String, data: [[Swift.String]], defaultSelectedIndexs: [Swift.Int]?, cancelAction: CSPickerView.PickerViewManager.BtnAction?, sureAction: CSPickerView.PickerViewManager.MultipleDoneAction?) + public class func showMultipleAssociatedColsPicker(_ toolBarTitle: Swift.String, data: CSPickerView.PickerViewManager.MultipleAssociatedDataType, defaultSelectedValues: [Swift.String]?, cancelAction: CSPickerView.PickerViewManager.BtnAction?, sureAction: CSPickerView.PickerViewManager.MultipleDoneAction?) + @objc dynamic public class func showCitiesPicker(_ toolBarTitle: Swift.String, type: CSPickerView.CityPickStyle = .province, defaultSelectedValues: [Swift.String]?, cancelAction: CSPickerView.PickerViewManager.BtnAction?, sureAction: CSPickerView.PickerViewManager.MultipleDoneAction?) + @objc dynamic public class func showDatePicker(_ toolBarTitle: Swift.String, datePickerSetting: CSPickerView.DatePickerSetting = DatePickerSetting(), cancelAction: CSPickerView.PickerViewManager.BtnAction?, sureAction: CSPickerView.PickerViewManager.DateDoneAction?) +} +extension CSPickerView.PickerStyles : Swift.Equatable {} +extension CSPickerView.PickerStyles : Swift.Hashable {} +extension CSPickerView.PickerStyles : Swift.RawRepresentable {} +extension CSPickerView.CityPickStyle : Swift.Equatable {} +extension CSPickerView.CityPickStyle : Swift.Hashable {} +extension CSPickerView.CityPickStyle : Swift.RawRepresentable {} +extension CSPickerView.DurationDatePickerViewDateType : Swift.Equatable {} +extension CSPickerView.DurationDatePickerViewDateType : Swift.Hashable {} +extension CSPickerView.DurationDatePickerViewDateType : Swift.RawRepresentable {} diff --git a/CSPickerView/Frameworks/CSPickerView.framework/Modules/CSPickerView.swiftmodule/arm.swiftmodule b/CSPickerView/Frameworks/CSPickerView.framework/Modules/CSPickerView.swiftmodule/arm.swiftmodule new file mode 100644 index 0000000..9ef1b1f Binary files /dev/null and b/CSPickerView/Frameworks/CSPickerView.framework/Modules/CSPickerView.swiftmodule/arm.swiftmodule differ diff --git a/CSPickerView/Frameworks/CSPickerView.framework/Modules/CSPickerView.swiftmodule/arm64-apple-ios.swiftdoc b/CSPickerView/Frameworks/CSPickerView.framework/Modules/CSPickerView.swiftmodule/arm64-apple-ios.swiftdoc new file mode 100644 index 0000000..45b00b0 Binary files /dev/null and b/CSPickerView/Frameworks/CSPickerView.framework/Modules/CSPickerView.swiftmodule/arm64-apple-ios.swiftdoc differ diff --git a/CSPickerView/Frameworks/CSPickerView.framework/Modules/CSPickerView.swiftmodule/arm64-apple-ios.swiftinterface b/CSPickerView/Frameworks/CSPickerView.framework/Modules/CSPickerView.swiftmodule/arm64-apple-ios.swiftinterface new file mode 100644 index 0000000..525f6c8 --- /dev/null +++ b/CSPickerView/Frameworks/CSPickerView.framework/Modules/CSPickerView.swiftmodule/arm64-apple-ios.swiftinterface @@ -0,0 +1,208 @@ +// swift-interface-format-version: 1.0 +// swift-compiler-version: Apple Swift version 5.3.2 (swiftlang-1200.0.45 clang-1200.0.32.28) +// swift-module-flags: -target arm64-apple-ios9.0 -enable-objc-interop -enable-library-evolution -swift-version 5 -enforce-exclusivity=checked -O -module-name CSPickerView +import Foundation +import Swift +import UIKit +@objc public protocol PickerViewDelegate : AnyObject { + @objc func singleColDidSelecte(_ selectedIndex: Swift.Int, selectedValue: Swift.String) + @objc func multipleColsDidSelecte(_ selectedIndexs: [Swift.Int], selectedValues: [Swift.String]) + @objc func dateDidSelecte(_ selectedDate: Foundation.Date) +} +@objc @_inheritsConvenienceInitializers @objcMembers public class DatePickerSetting : ObjectiveC.NSObject { + @objc public var date: Foundation.Date + @objc public var dateMode: UIKit.UIDatePicker.Mode + @objc public var minimumDate: Foundation.Date? + @objc public var maximumDate: Foundation.Date? + @objc override dynamic public init() + @objc deinit +} +@objc public enum PickerStyles : Swift.Int { + case single + case multiple + case multipleAssociated + case date + public typealias RawValue = Swift.Int + public init?(rawValue: Swift.Int) + public var rawValue: Swift.Int { + get + } +} +@objc public enum CityPickStyle : Swift.Int { + case province + case city + case area + public typealias RawValue = Swift.Int + public init?(rawValue: Swift.Int) + public var rawValue: Swift.Int { + get + } +} +@objc @_inheritsConvenienceInitializers @_hasMissingDesignatedInitializers @objcMembers public class PickerView : UIKit.UIView { + public typealias BtnAction = () -> Swift.Void + public typealias SingleDoneAction = (Swift.Int, Swift.String) -> Swift.Void + public typealias MultipleDoneAction = ([Swift.Int], [Swift.String]) -> Swift.Void + public typealias DateDoneAction = (Foundation.Date) -> Swift.Void + public typealias MultipleAssociatedDataType = [[[Swift.String : [Swift.String]?]]] + @objc public init(pickerStyle: CSPickerView.PickerStyles) + @objc override dynamic public func layoutSubviews() + @objc deinit +} +extension PickerView : UIKit.UIPickerViewDelegate, UIKit.UIPickerViewDataSource { + @objc final public func numberOfComponents(in pickerView: UIKit.UIPickerView) -> Swift.Int + @objc final public func pickerView(_ pickerView: UIKit.UIPickerView, numberOfRowsInComponent component: Swift.Int) -> Swift.Int + @objc final public func pickerView(_ pickerView: UIKit.UIPickerView, didSelectRow row: Swift.Int, inComponent component: Swift.Int) + @objc final public func pickerView(_ pickerView: UIKit.UIPickerView, viewForRow row: Swift.Int, forComponent component: Swift.Int, reusing view: UIKit.UIView?) -> UIKit.UIView +} +extension PickerView { + public class func singleColPicker(_ toolBarTitle: Swift.String, singleColData: [Swift.String], defaultIndex: Swift.Int?, cancelAction: CSPickerView.PickerView.BtnAction?, sureAction: CSPickerView.PickerView.SingleDoneAction?) -> CSPickerView.PickerView + @objc dynamic public class func multipleCosPicker(_ toolBarTitle: Swift.String, multipleColsData: [[Swift.String]], defaultSelectedIndexs: [Swift.Int]?, cancelAction: CSPickerView.PickerView.BtnAction?, doneAction: CSPickerView.PickerView.MultipleDoneAction?) -> CSPickerView.PickerView + public class func multipleAssociatedCosPicker(_ toolBarTitle: Swift.String, multipleAssociatedColsData: CSPickerView.PickerView.MultipleAssociatedDataType, defaultSelectedValues: [Swift.String]?, cancelAction: CSPickerView.PickerView.BtnAction?, doneAction: CSPickerView.PickerView.MultipleDoneAction?) -> CSPickerView.PickerView + @objc dynamic public class func citiesPicker(_ toolBarTitle: Swift.String, type: CSPickerView.CityPickStyle, defaultSelectedValues: [Swift.String]?, cancelAction: CSPickerView.PickerView.BtnAction?, doneAction: CSPickerView.PickerView.MultipleDoneAction?) -> CSPickerView.PickerView + @objc dynamic public class func datePicker(_ toolBarTitle: Swift.String, datePickerSetting: CSPickerView.DatePickerSetting, cancelAction: CSPickerView.PickerView.BtnAction?, doneAction: CSPickerView.PickerView.DateDoneAction?) -> CSPickerView.PickerView +} +@objc @_inheritsConvenienceInitializers @objcMembers public class PickerViewUtils : ObjectiveC.NSObject { + @objc public static var resoureBundle: Foundation.Bundle? { + @objc get + } + @objc public static var addressPlistPath: Swift.String? { + @objc get + } + @objc public static func localizedString(key: Swift.String, defaultValue: Swift.String? = nil) -> Swift.String? + @objc deinit + @objc override dynamic public init() +} +extension PickerViewUtils { + @objc public static func formatDate(date: Foundation.Date, formatStr: Swift.String) -> Swift.String + @objc public static func toDate(dateStr: Swift.String?, dateTypeStr: Swift.String) -> Foundation.Date? +} +@objc @_inheritsConvenienceInitializers @_hasMissingDesignatedInitializers @objcMembers public class SelectPickerView : UIKit.UIView { + @objc public var titleArr: [Swift.String] { + @objc get + @objc set + } + @objc public var cancelAction: CSPickerView.PickerViewManager.BtnAction? + @objc public var sureAction: CSPickerView.PickerViewManager.MultipleDoneAction? + @objc public var singleSureAction: CSPickerView.PickerViewManager.SingleDoneAction? + @objc override dynamic public func layoutSubviews() + @objc deinit +} +extension SelectPickerView { + @objc dynamic public class func showView(title: Swift.String, data: [Swift.String], defaultSelectedIndexs: [Swift.Int]?, cancelAction: @escaping CSPickerView.PickerViewManager.BtnAction, sureAction: @escaping CSPickerView.PickerViewManager.MultipleDoneAction) + @objc dynamic public class func getView(title: Swift.String, data: [Swift.String], defaultSelectedIndexs: [Swift.Int]?) -> CSPickerView.SelectPickerView? + public class func showSingleView(title: Swift.String, data: [Swift.String], defaultSelectedIndex: Swift.Int?, cancelAction: @escaping CSPickerView.PickerViewManager.BtnAction, sureAction: @escaping CSPickerView.PickerViewManager.SingleDoneAction) + public class func getSingleView(title: Swift.String, data: [Swift.String], defaultSelectedIndex: Swift.Int?) -> CSPickerView.SelectPickerView? + @objc dynamic public func show(completion: ((Swift.Bool) -> Swift.Void)? = nil) + @objc dynamic public func dismiss(completion: ((Swift.Bool) -> Swift.Void)? = nil) +} +extension SelectPickerView : UIKit.UITableViewDataSource { + @objc dynamic public func tableView(_ tableView: UIKit.UITableView, numberOfRowsInSection section: Swift.Int) -> Swift.Int + @objc dynamic public func tableView(_ tableView: UIKit.UITableView, cellForRowAt indexPath: Foundation.IndexPath) -> UIKit.UITableViewCell +} +extension SelectPickerView : UIKit.UITableViewDelegate { + @objc dynamic public func tableView(_ tableView: UIKit.UITableView, didSelectRowAt indexPath: Foundation.IndexPath) + @objc dynamic public func tableView(_ tableView: UIKit.UITableView, willDisplay cell: UIKit.UITableViewCell, forRowAt indexPath: Foundation.IndexPath) +} +@objc @_inheritsConvenienceInitializers @objcMembers open class ToolBarView : UIKit.UIView { + @objc open var title: Swift.String { + @objc get + @objc set + } + @objc open var sureAction: CSPickerView.PickerViewManager.BtnAction? + @objc open var cancelAction: CSPickerView.PickerViewManager.BtnAction? + @objc override dynamic public init(frame: CoreGraphics.CGRect) + @available(*, unavailable) + @objc required dynamic public init?(coder aDecoder: Foundation.NSCoder) + @objc override dynamic open func layoutSubviews() + @objc deinit +} +@objc public enum DurationDatePickerViewDateType : Swift.Int { + case YMD + case YMDHM + public var formatStr: Swift.String { + get + } + public typealias RawValue = Swift.Int + public init?(rawValue: Swift.Int) + public var rawValue: Swift.Int { + get + } +} +@objc @_inheritsConvenienceInitializers @_hasMissingDesignatedInitializers @objcMembers open class DurationDatePickerView : UIKit.UIView { + public typealias SureBlock = (Swift.String, Swift.String) -> Swift.Void + public typealias CancelBlock = () -> Swift.Void + @objc public var canGreatNow: Swift.Bool + @objc public var canLessNow: Swift.Bool + @objc public var sureBlock: CSPickerView.DurationDatePickerView.SureBlock? + @objc public var cancelBlock: CSPickerView.DurationDatePickerView.CancelBlock? + @objc public var titleLabel: UIKit.UILabel { + @objc get + @objc set + } + @objc public var startBtn: UIKit.UIButton { + @objc get + @objc set + } + @objc public var endBtn: UIKit.UIButton { + @objc get + @objc set + } + @objc public var cancelBtn: UIKit.UIButton { + @objc get + @objc set + } + @objc public var confirmBtn: UIKit.UIButton { + @objc get + @objc set + } + @available(*, unavailable) + @objc required dynamic public init?(coder aDecoder: Foundation.NSCoder) + @objc deinit +} +extension DurationDatePickerView { + @objc dynamic public class func getPopupView(startDate: Foundation.Date, endDate: Foundation.Date, dateType: CSPickerView.DurationDatePickerViewDateType = .YMD) -> CSPickerView.DurationDatePickerView + @objc dynamic public func show(completion: ((Swift.Bool) -> Swift.Void)? = nil) + @objc dynamic public func dismiss(completion: ((Swift.Bool) -> Swift.Void)? = nil) +} +@objc @_inheritsConvenienceInitializers @_hasMissingDesignatedInitializers @objcMembers public class PickerViewConfig : ObjectiveC.NSObject { + @objc public static let shared: CSPickerView.PickerViewConfig + @objc public var mainBackgroundColor: UIKit.UIColor + @objc public var maskColor: UIKit.UIColor + @objc public var mainTextColor: UIKit.UIColor + @objc public var leftButtonColor: UIKit.UIColor + @objc public var rightButtonColor: UIKit.UIColor + @objc public var centerLabelColor: UIKit.UIColor + @objc public var lineColor: UIKit.UIColor + @objc public var languageCode: Swift.String? + @objc public var animateDuration: Swift.Double + @objc deinit +} +@objc @_inheritsConvenienceInitializers @_hasMissingDesignatedInitializers @objcMembers public class PickerViewManager : UIKit.UIView { + public typealias BtnAction = () -> Swift.Void + public typealias SingleDoneAction = (Swift.Int, Swift.String) -> Swift.Void + public typealias MultipleDoneAction = ([Swift.Int], [Swift.String]) -> Swift.Void + public typealias DateDoneAction = (Foundation.Date) -> Swift.Void + public typealias MultipleAssociatedDataType = [[[Swift.String : [Swift.String]?]]] + @available(*, unavailable) + @objc required dynamic public init?(coder aDecoder: Foundation.NSCoder) + @objc deinit +} +extension PickerViewManager { + @objc dynamic public func dimiss(completion: ((Swift.Bool) -> Swift.Void)? = nil) +} +extension PickerViewManager { + public class func showSingleColPicker(_ toolBarTitle: Swift.String, data: [Swift.String], defaultSelectedIndex: Swift.Int?, cancelAction: CSPickerView.PickerViewManager.BtnAction?, sureAction: CSPickerView.PickerViewManager.SingleDoneAction?) + @objc dynamic public class func showMultipleColsPicker(_ toolBarTitle: Swift.String, data: [[Swift.String]], defaultSelectedIndexs: [Swift.Int]?, cancelAction: CSPickerView.PickerViewManager.BtnAction?, sureAction: CSPickerView.PickerViewManager.MultipleDoneAction?) + public class func showMultipleAssociatedColsPicker(_ toolBarTitle: Swift.String, data: CSPickerView.PickerViewManager.MultipleAssociatedDataType, defaultSelectedValues: [Swift.String]?, cancelAction: CSPickerView.PickerViewManager.BtnAction?, sureAction: CSPickerView.PickerViewManager.MultipleDoneAction?) + @objc dynamic public class func showCitiesPicker(_ toolBarTitle: Swift.String, type: CSPickerView.CityPickStyle = .province, defaultSelectedValues: [Swift.String]?, cancelAction: CSPickerView.PickerViewManager.BtnAction?, sureAction: CSPickerView.PickerViewManager.MultipleDoneAction?) + @objc dynamic public class func showDatePicker(_ toolBarTitle: Swift.String, datePickerSetting: CSPickerView.DatePickerSetting = DatePickerSetting(), cancelAction: CSPickerView.PickerViewManager.BtnAction?, sureAction: CSPickerView.PickerViewManager.DateDoneAction?) +} +extension CSPickerView.PickerStyles : Swift.Equatable {} +extension CSPickerView.PickerStyles : Swift.Hashable {} +extension CSPickerView.PickerStyles : Swift.RawRepresentable {} +extension CSPickerView.CityPickStyle : Swift.Equatable {} +extension CSPickerView.CityPickStyle : Swift.Hashable {} +extension CSPickerView.CityPickStyle : Swift.RawRepresentable {} +extension CSPickerView.DurationDatePickerViewDateType : Swift.Equatable {} +extension CSPickerView.DurationDatePickerViewDateType : Swift.Hashable {} +extension CSPickerView.DurationDatePickerViewDateType : Swift.RawRepresentable {} diff --git a/CSPickerView/Frameworks/CSPickerView.framework/Modules/CSPickerView.swiftmodule/arm64-apple-ios.swiftmodule b/CSPickerView/Frameworks/CSPickerView.framework/Modules/CSPickerView.swiftmodule/arm64-apple-ios.swiftmodule new file mode 100644 index 0000000..b303e80 Binary files /dev/null and b/CSPickerView/Frameworks/CSPickerView.framework/Modules/CSPickerView.swiftmodule/arm64-apple-ios.swiftmodule differ diff --git a/CSPickerView/Frameworks/CSPickerView.framework/Modules/CSPickerView.swiftmodule/arm64.swiftdoc b/CSPickerView/Frameworks/CSPickerView.framework/Modules/CSPickerView.swiftmodule/arm64.swiftdoc new file mode 100644 index 0000000..45b00b0 Binary files /dev/null and b/CSPickerView/Frameworks/CSPickerView.framework/Modules/CSPickerView.swiftmodule/arm64.swiftdoc differ diff --git a/CSPickerView/Frameworks/CSPickerView.framework/Modules/CSPickerView.swiftmodule/arm64.swiftinterface b/CSPickerView/Frameworks/CSPickerView.framework/Modules/CSPickerView.swiftmodule/arm64.swiftinterface new file mode 100644 index 0000000..525f6c8 --- /dev/null +++ b/CSPickerView/Frameworks/CSPickerView.framework/Modules/CSPickerView.swiftmodule/arm64.swiftinterface @@ -0,0 +1,208 @@ +// swift-interface-format-version: 1.0 +// swift-compiler-version: Apple Swift version 5.3.2 (swiftlang-1200.0.45 clang-1200.0.32.28) +// swift-module-flags: -target arm64-apple-ios9.0 -enable-objc-interop -enable-library-evolution -swift-version 5 -enforce-exclusivity=checked -O -module-name CSPickerView +import Foundation +import Swift +import UIKit +@objc public protocol PickerViewDelegate : AnyObject { + @objc func singleColDidSelecte(_ selectedIndex: Swift.Int, selectedValue: Swift.String) + @objc func multipleColsDidSelecte(_ selectedIndexs: [Swift.Int], selectedValues: [Swift.String]) + @objc func dateDidSelecte(_ selectedDate: Foundation.Date) +} +@objc @_inheritsConvenienceInitializers @objcMembers public class DatePickerSetting : ObjectiveC.NSObject { + @objc public var date: Foundation.Date + @objc public var dateMode: UIKit.UIDatePicker.Mode + @objc public var minimumDate: Foundation.Date? + @objc public var maximumDate: Foundation.Date? + @objc override dynamic public init() + @objc deinit +} +@objc public enum PickerStyles : Swift.Int { + case single + case multiple + case multipleAssociated + case date + public typealias RawValue = Swift.Int + public init?(rawValue: Swift.Int) + public var rawValue: Swift.Int { + get + } +} +@objc public enum CityPickStyle : Swift.Int { + case province + case city + case area + public typealias RawValue = Swift.Int + public init?(rawValue: Swift.Int) + public var rawValue: Swift.Int { + get + } +} +@objc @_inheritsConvenienceInitializers @_hasMissingDesignatedInitializers @objcMembers public class PickerView : UIKit.UIView { + public typealias BtnAction = () -> Swift.Void + public typealias SingleDoneAction = (Swift.Int, Swift.String) -> Swift.Void + public typealias MultipleDoneAction = ([Swift.Int], [Swift.String]) -> Swift.Void + public typealias DateDoneAction = (Foundation.Date) -> Swift.Void + public typealias MultipleAssociatedDataType = [[[Swift.String : [Swift.String]?]]] + @objc public init(pickerStyle: CSPickerView.PickerStyles) + @objc override dynamic public func layoutSubviews() + @objc deinit +} +extension PickerView : UIKit.UIPickerViewDelegate, UIKit.UIPickerViewDataSource { + @objc final public func numberOfComponents(in pickerView: UIKit.UIPickerView) -> Swift.Int + @objc final public func pickerView(_ pickerView: UIKit.UIPickerView, numberOfRowsInComponent component: Swift.Int) -> Swift.Int + @objc final public func pickerView(_ pickerView: UIKit.UIPickerView, didSelectRow row: Swift.Int, inComponent component: Swift.Int) + @objc final public func pickerView(_ pickerView: UIKit.UIPickerView, viewForRow row: Swift.Int, forComponent component: Swift.Int, reusing view: UIKit.UIView?) -> UIKit.UIView +} +extension PickerView { + public class func singleColPicker(_ toolBarTitle: Swift.String, singleColData: [Swift.String], defaultIndex: Swift.Int?, cancelAction: CSPickerView.PickerView.BtnAction?, sureAction: CSPickerView.PickerView.SingleDoneAction?) -> CSPickerView.PickerView + @objc dynamic public class func multipleCosPicker(_ toolBarTitle: Swift.String, multipleColsData: [[Swift.String]], defaultSelectedIndexs: [Swift.Int]?, cancelAction: CSPickerView.PickerView.BtnAction?, doneAction: CSPickerView.PickerView.MultipleDoneAction?) -> CSPickerView.PickerView + public class func multipleAssociatedCosPicker(_ toolBarTitle: Swift.String, multipleAssociatedColsData: CSPickerView.PickerView.MultipleAssociatedDataType, defaultSelectedValues: [Swift.String]?, cancelAction: CSPickerView.PickerView.BtnAction?, doneAction: CSPickerView.PickerView.MultipleDoneAction?) -> CSPickerView.PickerView + @objc dynamic public class func citiesPicker(_ toolBarTitle: Swift.String, type: CSPickerView.CityPickStyle, defaultSelectedValues: [Swift.String]?, cancelAction: CSPickerView.PickerView.BtnAction?, doneAction: CSPickerView.PickerView.MultipleDoneAction?) -> CSPickerView.PickerView + @objc dynamic public class func datePicker(_ toolBarTitle: Swift.String, datePickerSetting: CSPickerView.DatePickerSetting, cancelAction: CSPickerView.PickerView.BtnAction?, doneAction: CSPickerView.PickerView.DateDoneAction?) -> CSPickerView.PickerView +} +@objc @_inheritsConvenienceInitializers @objcMembers public class PickerViewUtils : ObjectiveC.NSObject { + @objc public static var resoureBundle: Foundation.Bundle? { + @objc get + } + @objc public static var addressPlistPath: Swift.String? { + @objc get + } + @objc public static func localizedString(key: Swift.String, defaultValue: Swift.String? = nil) -> Swift.String? + @objc deinit + @objc override dynamic public init() +} +extension PickerViewUtils { + @objc public static func formatDate(date: Foundation.Date, formatStr: Swift.String) -> Swift.String + @objc public static func toDate(dateStr: Swift.String?, dateTypeStr: Swift.String) -> Foundation.Date? +} +@objc @_inheritsConvenienceInitializers @_hasMissingDesignatedInitializers @objcMembers public class SelectPickerView : UIKit.UIView { + @objc public var titleArr: [Swift.String] { + @objc get + @objc set + } + @objc public var cancelAction: CSPickerView.PickerViewManager.BtnAction? + @objc public var sureAction: CSPickerView.PickerViewManager.MultipleDoneAction? + @objc public var singleSureAction: CSPickerView.PickerViewManager.SingleDoneAction? + @objc override dynamic public func layoutSubviews() + @objc deinit +} +extension SelectPickerView { + @objc dynamic public class func showView(title: Swift.String, data: [Swift.String], defaultSelectedIndexs: [Swift.Int]?, cancelAction: @escaping CSPickerView.PickerViewManager.BtnAction, sureAction: @escaping CSPickerView.PickerViewManager.MultipleDoneAction) + @objc dynamic public class func getView(title: Swift.String, data: [Swift.String], defaultSelectedIndexs: [Swift.Int]?) -> CSPickerView.SelectPickerView? + public class func showSingleView(title: Swift.String, data: [Swift.String], defaultSelectedIndex: Swift.Int?, cancelAction: @escaping CSPickerView.PickerViewManager.BtnAction, sureAction: @escaping CSPickerView.PickerViewManager.SingleDoneAction) + public class func getSingleView(title: Swift.String, data: [Swift.String], defaultSelectedIndex: Swift.Int?) -> CSPickerView.SelectPickerView? + @objc dynamic public func show(completion: ((Swift.Bool) -> Swift.Void)? = nil) + @objc dynamic public func dismiss(completion: ((Swift.Bool) -> Swift.Void)? = nil) +} +extension SelectPickerView : UIKit.UITableViewDataSource { + @objc dynamic public func tableView(_ tableView: UIKit.UITableView, numberOfRowsInSection section: Swift.Int) -> Swift.Int + @objc dynamic public func tableView(_ tableView: UIKit.UITableView, cellForRowAt indexPath: Foundation.IndexPath) -> UIKit.UITableViewCell +} +extension SelectPickerView : UIKit.UITableViewDelegate { + @objc dynamic public func tableView(_ tableView: UIKit.UITableView, didSelectRowAt indexPath: Foundation.IndexPath) + @objc dynamic public func tableView(_ tableView: UIKit.UITableView, willDisplay cell: UIKit.UITableViewCell, forRowAt indexPath: Foundation.IndexPath) +} +@objc @_inheritsConvenienceInitializers @objcMembers open class ToolBarView : UIKit.UIView { + @objc open var title: Swift.String { + @objc get + @objc set + } + @objc open var sureAction: CSPickerView.PickerViewManager.BtnAction? + @objc open var cancelAction: CSPickerView.PickerViewManager.BtnAction? + @objc override dynamic public init(frame: CoreGraphics.CGRect) + @available(*, unavailable) + @objc required dynamic public init?(coder aDecoder: Foundation.NSCoder) + @objc override dynamic open func layoutSubviews() + @objc deinit +} +@objc public enum DurationDatePickerViewDateType : Swift.Int { + case YMD + case YMDHM + public var formatStr: Swift.String { + get + } + public typealias RawValue = Swift.Int + public init?(rawValue: Swift.Int) + public var rawValue: Swift.Int { + get + } +} +@objc @_inheritsConvenienceInitializers @_hasMissingDesignatedInitializers @objcMembers open class DurationDatePickerView : UIKit.UIView { + public typealias SureBlock = (Swift.String, Swift.String) -> Swift.Void + public typealias CancelBlock = () -> Swift.Void + @objc public var canGreatNow: Swift.Bool + @objc public var canLessNow: Swift.Bool + @objc public var sureBlock: CSPickerView.DurationDatePickerView.SureBlock? + @objc public var cancelBlock: CSPickerView.DurationDatePickerView.CancelBlock? + @objc public var titleLabel: UIKit.UILabel { + @objc get + @objc set + } + @objc public var startBtn: UIKit.UIButton { + @objc get + @objc set + } + @objc public var endBtn: UIKit.UIButton { + @objc get + @objc set + } + @objc public var cancelBtn: UIKit.UIButton { + @objc get + @objc set + } + @objc public var confirmBtn: UIKit.UIButton { + @objc get + @objc set + } + @available(*, unavailable) + @objc required dynamic public init?(coder aDecoder: Foundation.NSCoder) + @objc deinit +} +extension DurationDatePickerView { + @objc dynamic public class func getPopupView(startDate: Foundation.Date, endDate: Foundation.Date, dateType: CSPickerView.DurationDatePickerViewDateType = .YMD) -> CSPickerView.DurationDatePickerView + @objc dynamic public func show(completion: ((Swift.Bool) -> Swift.Void)? = nil) + @objc dynamic public func dismiss(completion: ((Swift.Bool) -> Swift.Void)? = nil) +} +@objc @_inheritsConvenienceInitializers @_hasMissingDesignatedInitializers @objcMembers public class PickerViewConfig : ObjectiveC.NSObject { + @objc public static let shared: CSPickerView.PickerViewConfig + @objc public var mainBackgroundColor: UIKit.UIColor + @objc public var maskColor: UIKit.UIColor + @objc public var mainTextColor: UIKit.UIColor + @objc public var leftButtonColor: UIKit.UIColor + @objc public var rightButtonColor: UIKit.UIColor + @objc public var centerLabelColor: UIKit.UIColor + @objc public var lineColor: UIKit.UIColor + @objc public var languageCode: Swift.String? + @objc public var animateDuration: Swift.Double + @objc deinit +} +@objc @_inheritsConvenienceInitializers @_hasMissingDesignatedInitializers @objcMembers public class PickerViewManager : UIKit.UIView { + public typealias BtnAction = () -> Swift.Void + public typealias SingleDoneAction = (Swift.Int, Swift.String) -> Swift.Void + public typealias MultipleDoneAction = ([Swift.Int], [Swift.String]) -> Swift.Void + public typealias DateDoneAction = (Foundation.Date) -> Swift.Void + public typealias MultipleAssociatedDataType = [[[Swift.String : [Swift.String]?]]] + @available(*, unavailable) + @objc required dynamic public init?(coder aDecoder: Foundation.NSCoder) + @objc deinit +} +extension PickerViewManager { + @objc dynamic public func dimiss(completion: ((Swift.Bool) -> Swift.Void)? = nil) +} +extension PickerViewManager { + public class func showSingleColPicker(_ toolBarTitle: Swift.String, data: [Swift.String], defaultSelectedIndex: Swift.Int?, cancelAction: CSPickerView.PickerViewManager.BtnAction?, sureAction: CSPickerView.PickerViewManager.SingleDoneAction?) + @objc dynamic public class func showMultipleColsPicker(_ toolBarTitle: Swift.String, data: [[Swift.String]], defaultSelectedIndexs: [Swift.Int]?, cancelAction: CSPickerView.PickerViewManager.BtnAction?, sureAction: CSPickerView.PickerViewManager.MultipleDoneAction?) + public class func showMultipleAssociatedColsPicker(_ toolBarTitle: Swift.String, data: CSPickerView.PickerViewManager.MultipleAssociatedDataType, defaultSelectedValues: [Swift.String]?, cancelAction: CSPickerView.PickerViewManager.BtnAction?, sureAction: CSPickerView.PickerViewManager.MultipleDoneAction?) + @objc dynamic public class func showCitiesPicker(_ toolBarTitle: Swift.String, type: CSPickerView.CityPickStyle = .province, defaultSelectedValues: [Swift.String]?, cancelAction: CSPickerView.PickerViewManager.BtnAction?, sureAction: CSPickerView.PickerViewManager.MultipleDoneAction?) + @objc dynamic public class func showDatePicker(_ toolBarTitle: Swift.String, datePickerSetting: CSPickerView.DatePickerSetting = DatePickerSetting(), cancelAction: CSPickerView.PickerViewManager.BtnAction?, sureAction: CSPickerView.PickerViewManager.DateDoneAction?) +} +extension CSPickerView.PickerStyles : Swift.Equatable {} +extension CSPickerView.PickerStyles : Swift.Hashable {} +extension CSPickerView.PickerStyles : Swift.RawRepresentable {} +extension CSPickerView.CityPickStyle : Swift.Equatable {} +extension CSPickerView.CityPickStyle : Swift.Hashable {} +extension CSPickerView.CityPickStyle : Swift.RawRepresentable {} +extension CSPickerView.DurationDatePickerViewDateType : Swift.Equatable {} +extension CSPickerView.DurationDatePickerViewDateType : Swift.Hashable {} +extension CSPickerView.DurationDatePickerViewDateType : Swift.RawRepresentable {} diff --git a/CSPickerView/Frameworks/CSPickerView.framework/Modules/CSPickerView.swiftmodule/arm64.swiftmodule b/CSPickerView/Frameworks/CSPickerView.framework/Modules/CSPickerView.swiftmodule/arm64.swiftmodule new file mode 100644 index 0000000..b303e80 Binary files /dev/null and b/CSPickerView/Frameworks/CSPickerView.framework/Modules/CSPickerView.swiftmodule/arm64.swiftmodule differ diff --git a/CSPickerView/Frameworks/CSPickerView.framework/Modules/CSPickerView.swiftmodule/armv7-apple-ios.swiftdoc b/CSPickerView/Frameworks/CSPickerView.framework/Modules/CSPickerView.swiftmodule/armv7-apple-ios.swiftdoc new file mode 100644 index 0000000..2027037 Binary files /dev/null and b/CSPickerView/Frameworks/CSPickerView.framework/Modules/CSPickerView.swiftmodule/armv7-apple-ios.swiftdoc differ diff --git a/CSPickerView/Frameworks/CSPickerView.framework/Modules/CSPickerView.swiftmodule/armv7-apple-ios.swiftinterface b/CSPickerView/Frameworks/CSPickerView.framework/Modules/CSPickerView.swiftmodule/armv7-apple-ios.swiftinterface new file mode 100644 index 0000000..f607622 --- /dev/null +++ b/CSPickerView/Frameworks/CSPickerView.framework/Modules/CSPickerView.swiftmodule/armv7-apple-ios.swiftinterface @@ -0,0 +1,208 @@ +// swift-interface-format-version: 1.0 +// swift-compiler-version: Apple Swift version 5.3.2 (swiftlang-1200.0.45 clang-1200.0.32.28) +// swift-module-flags: -target armv7-apple-ios9.0 -enable-objc-interop -enable-library-evolution -swift-version 5 -enforce-exclusivity=checked -O -module-name CSPickerView +import Foundation +import Swift +import UIKit +@objc public protocol PickerViewDelegate : AnyObject { + @objc func singleColDidSelecte(_ selectedIndex: Swift.Int, selectedValue: Swift.String) + @objc func multipleColsDidSelecte(_ selectedIndexs: [Swift.Int], selectedValues: [Swift.String]) + @objc func dateDidSelecte(_ selectedDate: Foundation.Date) +} +@objc @_inheritsConvenienceInitializers @objcMembers public class DatePickerSetting : ObjectiveC.NSObject { + @objc public var date: Foundation.Date + @objc public var dateMode: UIKit.UIDatePicker.Mode + @objc public var minimumDate: Foundation.Date? + @objc public var maximumDate: Foundation.Date? + @objc override dynamic public init() + @objc deinit +} +@objc public enum PickerStyles : Swift.Int { + case single + case multiple + case multipleAssociated + case date + public typealias RawValue = Swift.Int + public init?(rawValue: Swift.Int) + public var rawValue: Swift.Int { + get + } +} +@objc public enum CityPickStyle : Swift.Int { + case province + case city + case area + public typealias RawValue = Swift.Int + public init?(rawValue: Swift.Int) + public var rawValue: Swift.Int { + get + } +} +@objc @_inheritsConvenienceInitializers @_hasMissingDesignatedInitializers @objcMembers public class PickerView : UIKit.UIView { + public typealias BtnAction = () -> Swift.Void + public typealias SingleDoneAction = (Swift.Int, Swift.String) -> Swift.Void + public typealias MultipleDoneAction = ([Swift.Int], [Swift.String]) -> Swift.Void + public typealias DateDoneAction = (Foundation.Date) -> Swift.Void + public typealias MultipleAssociatedDataType = [[[Swift.String : [Swift.String]?]]] + @objc public init(pickerStyle: CSPickerView.PickerStyles) + @objc override dynamic public func layoutSubviews() + @objc deinit +} +extension PickerView : UIKit.UIPickerViewDelegate, UIKit.UIPickerViewDataSource { + @objc final public func numberOfComponents(in pickerView: UIKit.UIPickerView) -> Swift.Int + @objc final public func pickerView(_ pickerView: UIKit.UIPickerView, numberOfRowsInComponent component: Swift.Int) -> Swift.Int + @objc final public func pickerView(_ pickerView: UIKit.UIPickerView, didSelectRow row: Swift.Int, inComponent component: Swift.Int) + @objc final public func pickerView(_ pickerView: UIKit.UIPickerView, viewForRow row: Swift.Int, forComponent component: Swift.Int, reusing view: UIKit.UIView?) -> UIKit.UIView +} +extension PickerView { + public class func singleColPicker(_ toolBarTitle: Swift.String, singleColData: [Swift.String], defaultIndex: Swift.Int?, cancelAction: CSPickerView.PickerView.BtnAction?, sureAction: CSPickerView.PickerView.SingleDoneAction?) -> CSPickerView.PickerView + @objc dynamic public class func multipleCosPicker(_ toolBarTitle: Swift.String, multipleColsData: [[Swift.String]], defaultSelectedIndexs: [Swift.Int]?, cancelAction: CSPickerView.PickerView.BtnAction?, doneAction: CSPickerView.PickerView.MultipleDoneAction?) -> CSPickerView.PickerView + public class func multipleAssociatedCosPicker(_ toolBarTitle: Swift.String, multipleAssociatedColsData: CSPickerView.PickerView.MultipleAssociatedDataType, defaultSelectedValues: [Swift.String]?, cancelAction: CSPickerView.PickerView.BtnAction?, doneAction: CSPickerView.PickerView.MultipleDoneAction?) -> CSPickerView.PickerView + @objc dynamic public class func citiesPicker(_ toolBarTitle: Swift.String, type: CSPickerView.CityPickStyle, defaultSelectedValues: [Swift.String]?, cancelAction: CSPickerView.PickerView.BtnAction?, doneAction: CSPickerView.PickerView.MultipleDoneAction?) -> CSPickerView.PickerView + @objc dynamic public class func datePicker(_ toolBarTitle: Swift.String, datePickerSetting: CSPickerView.DatePickerSetting, cancelAction: CSPickerView.PickerView.BtnAction?, doneAction: CSPickerView.PickerView.DateDoneAction?) -> CSPickerView.PickerView +} +@objc @_inheritsConvenienceInitializers @objcMembers public class PickerViewUtils : ObjectiveC.NSObject { + @objc public static var resoureBundle: Foundation.Bundle? { + @objc get + } + @objc public static var addressPlistPath: Swift.String? { + @objc get + } + @objc public static func localizedString(key: Swift.String, defaultValue: Swift.String? = nil) -> Swift.String? + @objc deinit + @objc override dynamic public init() +} +extension PickerViewUtils { + @objc public static func formatDate(date: Foundation.Date, formatStr: Swift.String) -> Swift.String + @objc public static func toDate(dateStr: Swift.String?, dateTypeStr: Swift.String) -> Foundation.Date? +} +@objc @_inheritsConvenienceInitializers @_hasMissingDesignatedInitializers @objcMembers public class SelectPickerView : UIKit.UIView { + @objc public var titleArr: [Swift.String] { + @objc get + @objc set + } + @objc public var cancelAction: CSPickerView.PickerViewManager.BtnAction? + @objc public var sureAction: CSPickerView.PickerViewManager.MultipleDoneAction? + @objc public var singleSureAction: CSPickerView.PickerViewManager.SingleDoneAction? + @objc override dynamic public func layoutSubviews() + @objc deinit +} +extension SelectPickerView { + @objc dynamic public class func showView(title: Swift.String, data: [Swift.String], defaultSelectedIndexs: [Swift.Int]?, cancelAction: @escaping CSPickerView.PickerViewManager.BtnAction, sureAction: @escaping CSPickerView.PickerViewManager.MultipleDoneAction) + @objc dynamic public class func getView(title: Swift.String, data: [Swift.String], defaultSelectedIndexs: [Swift.Int]?) -> CSPickerView.SelectPickerView? + public class func showSingleView(title: Swift.String, data: [Swift.String], defaultSelectedIndex: Swift.Int?, cancelAction: @escaping CSPickerView.PickerViewManager.BtnAction, sureAction: @escaping CSPickerView.PickerViewManager.SingleDoneAction) + public class func getSingleView(title: Swift.String, data: [Swift.String], defaultSelectedIndex: Swift.Int?) -> CSPickerView.SelectPickerView? + @objc dynamic public func show(completion: ((Swift.Bool) -> Swift.Void)? = nil) + @objc dynamic public func dismiss(completion: ((Swift.Bool) -> Swift.Void)? = nil) +} +extension SelectPickerView : UIKit.UITableViewDataSource { + @objc dynamic public func tableView(_ tableView: UIKit.UITableView, numberOfRowsInSection section: Swift.Int) -> Swift.Int + @objc dynamic public func tableView(_ tableView: UIKit.UITableView, cellForRowAt indexPath: Foundation.IndexPath) -> UIKit.UITableViewCell +} +extension SelectPickerView : UIKit.UITableViewDelegate { + @objc dynamic public func tableView(_ tableView: UIKit.UITableView, didSelectRowAt indexPath: Foundation.IndexPath) + @objc dynamic public func tableView(_ tableView: UIKit.UITableView, willDisplay cell: UIKit.UITableViewCell, forRowAt indexPath: Foundation.IndexPath) +} +@objc @_inheritsConvenienceInitializers @objcMembers open class ToolBarView : UIKit.UIView { + @objc open var title: Swift.String { + @objc get + @objc set + } + @objc open var sureAction: CSPickerView.PickerViewManager.BtnAction? + @objc open var cancelAction: CSPickerView.PickerViewManager.BtnAction? + @objc override dynamic public init(frame: CoreGraphics.CGRect) + @available(*, unavailable) + @objc required dynamic public init?(coder aDecoder: Foundation.NSCoder) + @objc override dynamic open func layoutSubviews() + @objc deinit +} +@objc public enum DurationDatePickerViewDateType : Swift.Int { + case YMD + case YMDHM + public var formatStr: Swift.String { + get + } + public typealias RawValue = Swift.Int + public init?(rawValue: Swift.Int) + public var rawValue: Swift.Int { + get + } +} +@objc @_inheritsConvenienceInitializers @_hasMissingDesignatedInitializers @objcMembers open class DurationDatePickerView : UIKit.UIView { + public typealias SureBlock = (Swift.String, Swift.String) -> Swift.Void + public typealias CancelBlock = () -> Swift.Void + @objc public var canGreatNow: Swift.Bool + @objc public var canLessNow: Swift.Bool + @objc public var sureBlock: CSPickerView.DurationDatePickerView.SureBlock? + @objc public var cancelBlock: CSPickerView.DurationDatePickerView.CancelBlock? + @objc public var titleLabel: UIKit.UILabel { + @objc get + @objc set + } + @objc public var startBtn: UIKit.UIButton { + @objc get + @objc set + } + @objc public var endBtn: UIKit.UIButton { + @objc get + @objc set + } + @objc public var cancelBtn: UIKit.UIButton { + @objc get + @objc set + } + @objc public var confirmBtn: UIKit.UIButton { + @objc get + @objc set + } + @available(*, unavailable) + @objc required dynamic public init?(coder aDecoder: Foundation.NSCoder) + @objc deinit +} +extension DurationDatePickerView { + @objc dynamic public class func getPopupView(startDate: Foundation.Date, endDate: Foundation.Date, dateType: CSPickerView.DurationDatePickerViewDateType = .YMD) -> CSPickerView.DurationDatePickerView + @objc dynamic public func show(completion: ((Swift.Bool) -> Swift.Void)? = nil) + @objc dynamic public func dismiss(completion: ((Swift.Bool) -> Swift.Void)? = nil) +} +@objc @_inheritsConvenienceInitializers @_hasMissingDesignatedInitializers @objcMembers public class PickerViewConfig : ObjectiveC.NSObject { + @objc public static let shared: CSPickerView.PickerViewConfig + @objc public var mainBackgroundColor: UIKit.UIColor + @objc public var maskColor: UIKit.UIColor + @objc public var mainTextColor: UIKit.UIColor + @objc public var leftButtonColor: UIKit.UIColor + @objc public var rightButtonColor: UIKit.UIColor + @objc public var centerLabelColor: UIKit.UIColor + @objc public var lineColor: UIKit.UIColor + @objc public var languageCode: Swift.String? + @objc public var animateDuration: Swift.Double + @objc deinit +} +@objc @_inheritsConvenienceInitializers @_hasMissingDesignatedInitializers @objcMembers public class PickerViewManager : UIKit.UIView { + public typealias BtnAction = () -> Swift.Void + public typealias SingleDoneAction = (Swift.Int, Swift.String) -> Swift.Void + public typealias MultipleDoneAction = ([Swift.Int], [Swift.String]) -> Swift.Void + public typealias DateDoneAction = (Foundation.Date) -> Swift.Void + public typealias MultipleAssociatedDataType = [[[Swift.String : [Swift.String]?]]] + @available(*, unavailable) + @objc required dynamic public init?(coder aDecoder: Foundation.NSCoder) + @objc deinit +} +extension PickerViewManager { + @objc dynamic public func dimiss(completion: ((Swift.Bool) -> Swift.Void)? = nil) +} +extension PickerViewManager { + public class func showSingleColPicker(_ toolBarTitle: Swift.String, data: [Swift.String], defaultSelectedIndex: Swift.Int?, cancelAction: CSPickerView.PickerViewManager.BtnAction?, sureAction: CSPickerView.PickerViewManager.SingleDoneAction?) + @objc dynamic public class func showMultipleColsPicker(_ toolBarTitle: Swift.String, data: [[Swift.String]], defaultSelectedIndexs: [Swift.Int]?, cancelAction: CSPickerView.PickerViewManager.BtnAction?, sureAction: CSPickerView.PickerViewManager.MultipleDoneAction?) + public class func showMultipleAssociatedColsPicker(_ toolBarTitle: Swift.String, data: CSPickerView.PickerViewManager.MultipleAssociatedDataType, defaultSelectedValues: [Swift.String]?, cancelAction: CSPickerView.PickerViewManager.BtnAction?, sureAction: CSPickerView.PickerViewManager.MultipleDoneAction?) + @objc dynamic public class func showCitiesPicker(_ toolBarTitle: Swift.String, type: CSPickerView.CityPickStyle = .province, defaultSelectedValues: [Swift.String]?, cancelAction: CSPickerView.PickerViewManager.BtnAction?, sureAction: CSPickerView.PickerViewManager.MultipleDoneAction?) + @objc dynamic public class func showDatePicker(_ toolBarTitle: Swift.String, datePickerSetting: CSPickerView.DatePickerSetting = DatePickerSetting(), cancelAction: CSPickerView.PickerViewManager.BtnAction?, sureAction: CSPickerView.PickerViewManager.DateDoneAction?) +} +extension CSPickerView.PickerStyles : Swift.Equatable {} +extension CSPickerView.PickerStyles : Swift.Hashable {} +extension CSPickerView.PickerStyles : Swift.RawRepresentable {} +extension CSPickerView.CityPickStyle : Swift.Equatable {} +extension CSPickerView.CityPickStyle : Swift.Hashable {} +extension CSPickerView.CityPickStyle : Swift.RawRepresentable {} +extension CSPickerView.DurationDatePickerViewDateType : Swift.Equatable {} +extension CSPickerView.DurationDatePickerViewDateType : Swift.Hashable {} +extension CSPickerView.DurationDatePickerViewDateType : Swift.RawRepresentable {} diff --git a/CSPickerView/Frameworks/CSPickerView.framework/Modules/CSPickerView.swiftmodule/armv7-apple-ios.swiftmodule b/CSPickerView/Frameworks/CSPickerView.framework/Modules/CSPickerView.swiftmodule/armv7-apple-ios.swiftmodule new file mode 100644 index 0000000..9ef1b1f Binary files /dev/null and b/CSPickerView/Frameworks/CSPickerView.framework/Modules/CSPickerView.swiftmodule/armv7-apple-ios.swiftmodule differ diff --git a/CSPickerView/Frameworks/CSPickerView.framework/Modules/CSPickerView.swiftmodule/armv7.swiftdoc b/CSPickerView/Frameworks/CSPickerView.framework/Modules/CSPickerView.swiftmodule/armv7.swiftdoc new file mode 100644 index 0000000..2027037 Binary files /dev/null and b/CSPickerView/Frameworks/CSPickerView.framework/Modules/CSPickerView.swiftmodule/armv7.swiftdoc differ diff --git a/CSPickerView/Frameworks/CSPickerView.framework/Modules/CSPickerView.swiftmodule/armv7.swiftinterface b/CSPickerView/Frameworks/CSPickerView.framework/Modules/CSPickerView.swiftmodule/armv7.swiftinterface new file mode 100644 index 0000000..f607622 --- /dev/null +++ b/CSPickerView/Frameworks/CSPickerView.framework/Modules/CSPickerView.swiftmodule/armv7.swiftinterface @@ -0,0 +1,208 @@ +// swift-interface-format-version: 1.0 +// swift-compiler-version: Apple Swift version 5.3.2 (swiftlang-1200.0.45 clang-1200.0.32.28) +// swift-module-flags: -target armv7-apple-ios9.0 -enable-objc-interop -enable-library-evolution -swift-version 5 -enforce-exclusivity=checked -O -module-name CSPickerView +import Foundation +import Swift +import UIKit +@objc public protocol PickerViewDelegate : AnyObject { + @objc func singleColDidSelecte(_ selectedIndex: Swift.Int, selectedValue: Swift.String) + @objc func multipleColsDidSelecte(_ selectedIndexs: [Swift.Int], selectedValues: [Swift.String]) + @objc func dateDidSelecte(_ selectedDate: Foundation.Date) +} +@objc @_inheritsConvenienceInitializers @objcMembers public class DatePickerSetting : ObjectiveC.NSObject { + @objc public var date: Foundation.Date + @objc public var dateMode: UIKit.UIDatePicker.Mode + @objc public var minimumDate: Foundation.Date? + @objc public var maximumDate: Foundation.Date? + @objc override dynamic public init() + @objc deinit +} +@objc public enum PickerStyles : Swift.Int { + case single + case multiple + case multipleAssociated + case date + public typealias RawValue = Swift.Int + public init?(rawValue: Swift.Int) + public var rawValue: Swift.Int { + get + } +} +@objc public enum CityPickStyle : Swift.Int { + case province + case city + case area + public typealias RawValue = Swift.Int + public init?(rawValue: Swift.Int) + public var rawValue: Swift.Int { + get + } +} +@objc @_inheritsConvenienceInitializers @_hasMissingDesignatedInitializers @objcMembers public class PickerView : UIKit.UIView { + public typealias BtnAction = () -> Swift.Void + public typealias SingleDoneAction = (Swift.Int, Swift.String) -> Swift.Void + public typealias MultipleDoneAction = ([Swift.Int], [Swift.String]) -> Swift.Void + public typealias DateDoneAction = (Foundation.Date) -> Swift.Void + public typealias MultipleAssociatedDataType = [[[Swift.String : [Swift.String]?]]] + @objc public init(pickerStyle: CSPickerView.PickerStyles) + @objc override dynamic public func layoutSubviews() + @objc deinit +} +extension PickerView : UIKit.UIPickerViewDelegate, UIKit.UIPickerViewDataSource { + @objc final public func numberOfComponents(in pickerView: UIKit.UIPickerView) -> Swift.Int + @objc final public func pickerView(_ pickerView: UIKit.UIPickerView, numberOfRowsInComponent component: Swift.Int) -> Swift.Int + @objc final public func pickerView(_ pickerView: UIKit.UIPickerView, didSelectRow row: Swift.Int, inComponent component: Swift.Int) + @objc final public func pickerView(_ pickerView: UIKit.UIPickerView, viewForRow row: Swift.Int, forComponent component: Swift.Int, reusing view: UIKit.UIView?) -> UIKit.UIView +} +extension PickerView { + public class func singleColPicker(_ toolBarTitle: Swift.String, singleColData: [Swift.String], defaultIndex: Swift.Int?, cancelAction: CSPickerView.PickerView.BtnAction?, sureAction: CSPickerView.PickerView.SingleDoneAction?) -> CSPickerView.PickerView + @objc dynamic public class func multipleCosPicker(_ toolBarTitle: Swift.String, multipleColsData: [[Swift.String]], defaultSelectedIndexs: [Swift.Int]?, cancelAction: CSPickerView.PickerView.BtnAction?, doneAction: CSPickerView.PickerView.MultipleDoneAction?) -> CSPickerView.PickerView + public class func multipleAssociatedCosPicker(_ toolBarTitle: Swift.String, multipleAssociatedColsData: CSPickerView.PickerView.MultipleAssociatedDataType, defaultSelectedValues: [Swift.String]?, cancelAction: CSPickerView.PickerView.BtnAction?, doneAction: CSPickerView.PickerView.MultipleDoneAction?) -> CSPickerView.PickerView + @objc dynamic public class func citiesPicker(_ toolBarTitle: Swift.String, type: CSPickerView.CityPickStyle, defaultSelectedValues: [Swift.String]?, cancelAction: CSPickerView.PickerView.BtnAction?, doneAction: CSPickerView.PickerView.MultipleDoneAction?) -> CSPickerView.PickerView + @objc dynamic public class func datePicker(_ toolBarTitle: Swift.String, datePickerSetting: CSPickerView.DatePickerSetting, cancelAction: CSPickerView.PickerView.BtnAction?, doneAction: CSPickerView.PickerView.DateDoneAction?) -> CSPickerView.PickerView +} +@objc @_inheritsConvenienceInitializers @objcMembers public class PickerViewUtils : ObjectiveC.NSObject { + @objc public static var resoureBundle: Foundation.Bundle? { + @objc get + } + @objc public static var addressPlistPath: Swift.String? { + @objc get + } + @objc public static func localizedString(key: Swift.String, defaultValue: Swift.String? = nil) -> Swift.String? + @objc deinit + @objc override dynamic public init() +} +extension PickerViewUtils { + @objc public static func formatDate(date: Foundation.Date, formatStr: Swift.String) -> Swift.String + @objc public static func toDate(dateStr: Swift.String?, dateTypeStr: Swift.String) -> Foundation.Date? +} +@objc @_inheritsConvenienceInitializers @_hasMissingDesignatedInitializers @objcMembers public class SelectPickerView : UIKit.UIView { + @objc public var titleArr: [Swift.String] { + @objc get + @objc set + } + @objc public var cancelAction: CSPickerView.PickerViewManager.BtnAction? + @objc public var sureAction: CSPickerView.PickerViewManager.MultipleDoneAction? + @objc public var singleSureAction: CSPickerView.PickerViewManager.SingleDoneAction? + @objc override dynamic public func layoutSubviews() + @objc deinit +} +extension SelectPickerView { + @objc dynamic public class func showView(title: Swift.String, data: [Swift.String], defaultSelectedIndexs: [Swift.Int]?, cancelAction: @escaping CSPickerView.PickerViewManager.BtnAction, sureAction: @escaping CSPickerView.PickerViewManager.MultipleDoneAction) + @objc dynamic public class func getView(title: Swift.String, data: [Swift.String], defaultSelectedIndexs: [Swift.Int]?) -> CSPickerView.SelectPickerView? + public class func showSingleView(title: Swift.String, data: [Swift.String], defaultSelectedIndex: Swift.Int?, cancelAction: @escaping CSPickerView.PickerViewManager.BtnAction, sureAction: @escaping CSPickerView.PickerViewManager.SingleDoneAction) + public class func getSingleView(title: Swift.String, data: [Swift.String], defaultSelectedIndex: Swift.Int?) -> CSPickerView.SelectPickerView? + @objc dynamic public func show(completion: ((Swift.Bool) -> Swift.Void)? = nil) + @objc dynamic public func dismiss(completion: ((Swift.Bool) -> Swift.Void)? = nil) +} +extension SelectPickerView : UIKit.UITableViewDataSource { + @objc dynamic public func tableView(_ tableView: UIKit.UITableView, numberOfRowsInSection section: Swift.Int) -> Swift.Int + @objc dynamic public func tableView(_ tableView: UIKit.UITableView, cellForRowAt indexPath: Foundation.IndexPath) -> UIKit.UITableViewCell +} +extension SelectPickerView : UIKit.UITableViewDelegate { + @objc dynamic public func tableView(_ tableView: UIKit.UITableView, didSelectRowAt indexPath: Foundation.IndexPath) + @objc dynamic public func tableView(_ tableView: UIKit.UITableView, willDisplay cell: UIKit.UITableViewCell, forRowAt indexPath: Foundation.IndexPath) +} +@objc @_inheritsConvenienceInitializers @objcMembers open class ToolBarView : UIKit.UIView { + @objc open var title: Swift.String { + @objc get + @objc set + } + @objc open var sureAction: CSPickerView.PickerViewManager.BtnAction? + @objc open var cancelAction: CSPickerView.PickerViewManager.BtnAction? + @objc override dynamic public init(frame: CoreGraphics.CGRect) + @available(*, unavailable) + @objc required dynamic public init?(coder aDecoder: Foundation.NSCoder) + @objc override dynamic open func layoutSubviews() + @objc deinit +} +@objc public enum DurationDatePickerViewDateType : Swift.Int { + case YMD + case YMDHM + public var formatStr: Swift.String { + get + } + public typealias RawValue = Swift.Int + public init?(rawValue: Swift.Int) + public var rawValue: Swift.Int { + get + } +} +@objc @_inheritsConvenienceInitializers @_hasMissingDesignatedInitializers @objcMembers open class DurationDatePickerView : UIKit.UIView { + public typealias SureBlock = (Swift.String, Swift.String) -> Swift.Void + public typealias CancelBlock = () -> Swift.Void + @objc public var canGreatNow: Swift.Bool + @objc public var canLessNow: Swift.Bool + @objc public var sureBlock: CSPickerView.DurationDatePickerView.SureBlock? + @objc public var cancelBlock: CSPickerView.DurationDatePickerView.CancelBlock? + @objc public var titleLabel: UIKit.UILabel { + @objc get + @objc set + } + @objc public var startBtn: UIKit.UIButton { + @objc get + @objc set + } + @objc public var endBtn: UIKit.UIButton { + @objc get + @objc set + } + @objc public var cancelBtn: UIKit.UIButton { + @objc get + @objc set + } + @objc public var confirmBtn: UIKit.UIButton { + @objc get + @objc set + } + @available(*, unavailable) + @objc required dynamic public init?(coder aDecoder: Foundation.NSCoder) + @objc deinit +} +extension DurationDatePickerView { + @objc dynamic public class func getPopupView(startDate: Foundation.Date, endDate: Foundation.Date, dateType: CSPickerView.DurationDatePickerViewDateType = .YMD) -> CSPickerView.DurationDatePickerView + @objc dynamic public func show(completion: ((Swift.Bool) -> Swift.Void)? = nil) + @objc dynamic public func dismiss(completion: ((Swift.Bool) -> Swift.Void)? = nil) +} +@objc @_inheritsConvenienceInitializers @_hasMissingDesignatedInitializers @objcMembers public class PickerViewConfig : ObjectiveC.NSObject { + @objc public static let shared: CSPickerView.PickerViewConfig + @objc public var mainBackgroundColor: UIKit.UIColor + @objc public var maskColor: UIKit.UIColor + @objc public var mainTextColor: UIKit.UIColor + @objc public var leftButtonColor: UIKit.UIColor + @objc public var rightButtonColor: UIKit.UIColor + @objc public var centerLabelColor: UIKit.UIColor + @objc public var lineColor: UIKit.UIColor + @objc public var languageCode: Swift.String? + @objc public var animateDuration: Swift.Double + @objc deinit +} +@objc @_inheritsConvenienceInitializers @_hasMissingDesignatedInitializers @objcMembers public class PickerViewManager : UIKit.UIView { + public typealias BtnAction = () -> Swift.Void + public typealias SingleDoneAction = (Swift.Int, Swift.String) -> Swift.Void + public typealias MultipleDoneAction = ([Swift.Int], [Swift.String]) -> Swift.Void + public typealias DateDoneAction = (Foundation.Date) -> Swift.Void + public typealias MultipleAssociatedDataType = [[[Swift.String : [Swift.String]?]]] + @available(*, unavailable) + @objc required dynamic public init?(coder aDecoder: Foundation.NSCoder) + @objc deinit +} +extension PickerViewManager { + @objc dynamic public func dimiss(completion: ((Swift.Bool) -> Swift.Void)? = nil) +} +extension PickerViewManager { + public class func showSingleColPicker(_ toolBarTitle: Swift.String, data: [Swift.String], defaultSelectedIndex: Swift.Int?, cancelAction: CSPickerView.PickerViewManager.BtnAction?, sureAction: CSPickerView.PickerViewManager.SingleDoneAction?) + @objc dynamic public class func showMultipleColsPicker(_ toolBarTitle: Swift.String, data: [[Swift.String]], defaultSelectedIndexs: [Swift.Int]?, cancelAction: CSPickerView.PickerViewManager.BtnAction?, sureAction: CSPickerView.PickerViewManager.MultipleDoneAction?) + public class func showMultipleAssociatedColsPicker(_ toolBarTitle: Swift.String, data: CSPickerView.PickerViewManager.MultipleAssociatedDataType, defaultSelectedValues: [Swift.String]?, cancelAction: CSPickerView.PickerViewManager.BtnAction?, sureAction: CSPickerView.PickerViewManager.MultipleDoneAction?) + @objc dynamic public class func showCitiesPicker(_ toolBarTitle: Swift.String, type: CSPickerView.CityPickStyle = .province, defaultSelectedValues: [Swift.String]?, cancelAction: CSPickerView.PickerViewManager.BtnAction?, sureAction: CSPickerView.PickerViewManager.MultipleDoneAction?) + @objc dynamic public class func showDatePicker(_ toolBarTitle: Swift.String, datePickerSetting: CSPickerView.DatePickerSetting = DatePickerSetting(), cancelAction: CSPickerView.PickerViewManager.BtnAction?, sureAction: CSPickerView.PickerViewManager.DateDoneAction?) +} +extension CSPickerView.PickerStyles : Swift.Equatable {} +extension CSPickerView.PickerStyles : Swift.Hashable {} +extension CSPickerView.PickerStyles : Swift.RawRepresentable {} +extension CSPickerView.CityPickStyle : Swift.Equatable {} +extension CSPickerView.CityPickStyle : Swift.Hashable {} +extension CSPickerView.CityPickStyle : Swift.RawRepresentable {} +extension CSPickerView.DurationDatePickerViewDateType : Swift.Equatable {} +extension CSPickerView.DurationDatePickerViewDateType : Swift.Hashable {} +extension CSPickerView.DurationDatePickerViewDateType : Swift.RawRepresentable {} diff --git a/CSPickerView/Frameworks/CSPickerView.framework/Modules/CSPickerView.swiftmodule/armv7.swiftmodule b/CSPickerView/Frameworks/CSPickerView.framework/Modules/CSPickerView.swiftmodule/armv7.swiftmodule new file mode 100644 index 0000000..9ef1b1f Binary files /dev/null and b/CSPickerView/Frameworks/CSPickerView.framework/Modules/CSPickerView.swiftmodule/armv7.swiftmodule differ diff --git a/CSPickerView/Frameworks/CSPickerView.framework/Modules/CSPickerView.swiftmodule/armv7s-apple-ios.swiftdoc b/CSPickerView/Frameworks/CSPickerView.framework/Modules/CSPickerView.swiftmodule/armv7s-apple-ios.swiftdoc new file mode 100644 index 0000000..3ff19cc Binary files /dev/null and b/CSPickerView/Frameworks/CSPickerView.framework/Modules/CSPickerView.swiftmodule/armv7s-apple-ios.swiftdoc differ diff --git a/CSPickerView/Frameworks/CSPickerView.framework/Modules/CSPickerView.swiftmodule/armv7s-apple-ios.swiftinterface b/CSPickerView/Frameworks/CSPickerView.framework/Modules/CSPickerView.swiftmodule/armv7s-apple-ios.swiftinterface new file mode 100644 index 0000000..ca5d326 --- /dev/null +++ b/CSPickerView/Frameworks/CSPickerView.framework/Modules/CSPickerView.swiftmodule/armv7s-apple-ios.swiftinterface @@ -0,0 +1,208 @@ +// swift-interface-format-version: 1.0 +// swift-compiler-version: Apple Swift version 5.3.2 (swiftlang-1200.0.45 clang-1200.0.32.28) +// swift-module-flags: -target armv7s-apple-ios9.0 -enable-objc-interop -enable-library-evolution -swift-version 5 -enforce-exclusivity=checked -O -module-name CSPickerView +import Foundation +import Swift +import UIKit +@objc public protocol PickerViewDelegate : AnyObject { + @objc func singleColDidSelecte(_ selectedIndex: Swift.Int, selectedValue: Swift.String) + @objc func multipleColsDidSelecte(_ selectedIndexs: [Swift.Int], selectedValues: [Swift.String]) + @objc func dateDidSelecte(_ selectedDate: Foundation.Date) +} +@objc @_inheritsConvenienceInitializers @objcMembers public class DatePickerSetting : ObjectiveC.NSObject { + @objc public var date: Foundation.Date + @objc public var dateMode: UIKit.UIDatePicker.Mode + @objc public var minimumDate: Foundation.Date? + @objc public var maximumDate: Foundation.Date? + @objc override dynamic public init() + @objc deinit +} +@objc public enum PickerStyles : Swift.Int { + case single + case multiple + case multipleAssociated + case date + public typealias RawValue = Swift.Int + public init?(rawValue: Swift.Int) + public var rawValue: Swift.Int { + get + } +} +@objc public enum CityPickStyle : Swift.Int { + case province + case city + case area + public typealias RawValue = Swift.Int + public init?(rawValue: Swift.Int) + public var rawValue: Swift.Int { + get + } +} +@objc @_inheritsConvenienceInitializers @_hasMissingDesignatedInitializers @objcMembers public class PickerView : UIKit.UIView { + public typealias BtnAction = () -> Swift.Void + public typealias SingleDoneAction = (Swift.Int, Swift.String) -> Swift.Void + public typealias MultipleDoneAction = ([Swift.Int], [Swift.String]) -> Swift.Void + public typealias DateDoneAction = (Foundation.Date) -> Swift.Void + public typealias MultipleAssociatedDataType = [[[Swift.String : [Swift.String]?]]] + @objc public init(pickerStyle: CSPickerView.PickerStyles) + @objc override dynamic public func layoutSubviews() + @objc deinit +} +extension PickerView : UIKit.UIPickerViewDelegate, UIKit.UIPickerViewDataSource { + @objc final public func numberOfComponents(in pickerView: UIKit.UIPickerView) -> Swift.Int + @objc final public func pickerView(_ pickerView: UIKit.UIPickerView, numberOfRowsInComponent component: Swift.Int) -> Swift.Int + @objc final public func pickerView(_ pickerView: UIKit.UIPickerView, didSelectRow row: Swift.Int, inComponent component: Swift.Int) + @objc final public func pickerView(_ pickerView: UIKit.UIPickerView, viewForRow row: Swift.Int, forComponent component: Swift.Int, reusing view: UIKit.UIView?) -> UIKit.UIView +} +extension PickerView { + public class func singleColPicker(_ toolBarTitle: Swift.String, singleColData: [Swift.String], defaultIndex: Swift.Int?, cancelAction: CSPickerView.PickerView.BtnAction?, sureAction: CSPickerView.PickerView.SingleDoneAction?) -> CSPickerView.PickerView + @objc dynamic public class func multipleCosPicker(_ toolBarTitle: Swift.String, multipleColsData: [[Swift.String]], defaultSelectedIndexs: [Swift.Int]?, cancelAction: CSPickerView.PickerView.BtnAction?, doneAction: CSPickerView.PickerView.MultipleDoneAction?) -> CSPickerView.PickerView + public class func multipleAssociatedCosPicker(_ toolBarTitle: Swift.String, multipleAssociatedColsData: CSPickerView.PickerView.MultipleAssociatedDataType, defaultSelectedValues: [Swift.String]?, cancelAction: CSPickerView.PickerView.BtnAction?, doneAction: CSPickerView.PickerView.MultipleDoneAction?) -> CSPickerView.PickerView + @objc dynamic public class func citiesPicker(_ toolBarTitle: Swift.String, type: CSPickerView.CityPickStyle, defaultSelectedValues: [Swift.String]?, cancelAction: CSPickerView.PickerView.BtnAction?, doneAction: CSPickerView.PickerView.MultipleDoneAction?) -> CSPickerView.PickerView + @objc dynamic public class func datePicker(_ toolBarTitle: Swift.String, datePickerSetting: CSPickerView.DatePickerSetting, cancelAction: CSPickerView.PickerView.BtnAction?, doneAction: CSPickerView.PickerView.DateDoneAction?) -> CSPickerView.PickerView +} +@objc @_inheritsConvenienceInitializers @objcMembers public class PickerViewUtils : ObjectiveC.NSObject { + @objc public static var resoureBundle: Foundation.Bundle? { + @objc get + } + @objc public static var addressPlistPath: Swift.String? { + @objc get + } + @objc public static func localizedString(key: Swift.String, defaultValue: Swift.String? = nil) -> Swift.String? + @objc deinit + @objc override dynamic public init() +} +extension PickerViewUtils { + @objc public static func formatDate(date: Foundation.Date, formatStr: Swift.String) -> Swift.String + @objc public static func toDate(dateStr: Swift.String?, dateTypeStr: Swift.String) -> Foundation.Date? +} +@objc @_inheritsConvenienceInitializers @_hasMissingDesignatedInitializers @objcMembers public class SelectPickerView : UIKit.UIView { + @objc public var titleArr: [Swift.String] { + @objc get + @objc set + } + @objc public var cancelAction: CSPickerView.PickerViewManager.BtnAction? + @objc public var sureAction: CSPickerView.PickerViewManager.MultipleDoneAction? + @objc public var singleSureAction: CSPickerView.PickerViewManager.SingleDoneAction? + @objc override dynamic public func layoutSubviews() + @objc deinit +} +extension SelectPickerView { + @objc dynamic public class func showView(title: Swift.String, data: [Swift.String], defaultSelectedIndexs: [Swift.Int]?, cancelAction: @escaping CSPickerView.PickerViewManager.BtnAction, sureAction: @escaping CSPickerView.PickerViewManager.MultipleDoneAction) + @objc dynamic public class func getView(title: Swift.String, data: [Swift.String], defaultSelectedIndexs: [Swift.Int]?) -> CSPickerView.SelectPickerView? + public class func showSingleView(title: Swift.String, data: [Swift.String], defaultSelectedIndex: Swift.Int?, cancelAction: @escaping CSPickerView.PickerViewManager.BtnAction, sureAction: @escaping CSPickerView.PickerViewManager.SingleDoneAction) + public class func getSingleView(title: Swift.String, data: [Swift.String], defaultSelectedIndex: Swift.Int?) -> CSPickerView.SelectPickerView? + @objc dynamic public func show(completion: ((Swift.Bool) -> Swift.Void)? = nil) + @objc dynamic public func dismiss(completion: ((Swift.Bool) -> Swift.Void)? = nil) +} +extension SelectPickerView : UIKit.UITableViewDataSource { + @objc dynamic public func tableView(_ tableView: UIKit.UITableView, numberOfRowsInSection section: Swift.Int) -> Swift.Int + @objc dynamic public func tableView(_ tableView: UIKit.UITableView, cellForRowAt indexPath: Foundation.IndexPath) -> UIKit.UITableViewCell +} +extension SelectPickerView : UIKit.UITableViewDelegate { + @objc dynamic public func tableView(_ tableView: UIKit.UITableView, didSelectRowAt indexPath: Foundation.IndexPath) + @objc dynamic public func tableView(_ tableView: UIKit.UITableView, willDisplay cell: UIKit.UITableViewCell, forRowAt indexPath: Foundation.IndexPath) +} +@objc @_inheritsConvenienceInitializers @objcMembers open class ToolBarView : UIKit.UIView { + @objc open var title: Swift.String { + @objc get + @objc set + } + @objc open var sureAction: CSPickerView.PickerViewManager.BtnAction? + @objc open var cancelAction: CSPickerView.PickerViewManager.BtnAction? + @objc override dynamic public init(frame: CoreGraphics.CGRect) + @available(*, unavailable) + @objc required dynamic public init?(coder aDecoder: Foundation.NSCoder) + @objc override dynamic open func layoutSubviews() + @objc deinit +} +@objc public enum DurationDatePickerViewDateType : Swift.Int { + case YMD + case YMDHM + public var formatStr: Swift.String { + get + } + public typealias RawValue = Swift.Int + public init?(rawValue: Swift.Int) + public var rawValue: Swift.Int { + get + } +} +@objc @_inheritsConvenienceInitializers @_hasMissingDesignatedInitializers @objcMembers open class DurationDatePickerView : UIKit.UIView { + public typealias SureBlock = (Swift.String, Swift.String) -> Swift.Void + public typealias CancelBlock = () -> Swift.Void + @objc public var canGreatNow: Swift.Bool + @objc public var canLessNow: Swift.Bool + @objc public var sureBlock: CSPickerView.DurationDatePickerView.SureBlock? + @objc public var cancelBlock: CSPickerView.DurationDatePickerView.CancelBlock? + @objc public var titleLabel: UIKit.UILabel { + @objc get + @objc set + } + @objc public var startBtn: UIKit.UIButton { + @objc get + @objc set + } + @objc public var endBtn: UIKit.UIButton { + @objc get + @objc set + } + @objc public var cancelBtn: UIKit.UIButton { + @objc get + @objc set + } + @objc public var confirmBtn: UIKit.UIButton { + @objc get + @objc set + } + @available(*, unavailable) + @objc required dynamic public init?(coder aDecoder: Foundation.NSCoder) + @objc deinit +} +extension DurationDatePickerView { + @objc dynamic public class func getPopupView(startDate: Foundation.Date, endDate: Foundation.Date, dateType: CSPickerView.DurationDatePickerViewDateType = .YMD) -> CSPickerView.DurationDatePickerView + @objc dynamic public func show(completion: ((Swift.Bool) -> Swift.Void)? = nil) + @objc dynamic public func dismiss(completion: ((Swift.Bool) -> Swift.Void)? = nil) +} +@objc @_inheritsConvenienceInitializers @_hasMissingDesignatedInitializers @objcMembers public class PickerViewConfig : ObjectiveC.NSObject { + @objc public static let shared: CSPickerView.PickerViewConfig + @objc public var mainBackgroundColor: UIKit.UIColor + @objc public var maskColor: UIKit.UIColor + @objc public var mainTextColor: UIKit.UIColor + @objc public var leftButtonColor: UIKit.UIColor + @objc public var rightButtonColor: UIKit.UIColor + @objc public var centerLabelColor: UIKit.UIColor + @objc public var lineColor: UIKit.UIColor + @objc public var languageCode: Swift.String? + @objc public var animateDuration: Swift.Double + @objc deinit +} +@objc @_inheritsConvenienceInitializers @_hasMissingDesignatedInitializers @objcMembers public class PickerViewManager : UIKit.UIView { + public typealias BtnAction = () -> Swift.Void + public typealias SingleDoneAction = (Swift.Int, Swift.String) -> Swift.Void + public typealias MultipleDoneAction = ([Swift.Int], [Swift.String]) -> Swift.Void + public typealias DateDoneAction = (Foundation.Date) -> Swift.Void + public typealias MultipleAssociatedDataType = [[[Swift.String : [Swift.String]?]]] + @available(*, unavailable) + @objc required dynamic public init?(coder aDecoder: Foundation.NSCoder) + @objc deinit +} +extension PickerViewManager { + @objc dynamic public func dimiss(completion: ((Swift.Bool) -> Swift.Void)? = nil) +} +extension PickerViewManager { + public class func showSingleColPicker(_ toolBarTitle: Swift.String, data: [Swift.String], defaultSelectedIndex: Swift.Int?, cancelAction: CSPickerView.PickerViewManager.BtnAction?, sureAction: CSPickerView.PickerViewManager.SingleDoneAction?) + @objc dynamic public class func showMultipleColsPicker(_ toolBarTitle: Swift.String, data: [[Swift.String]], defaultSelectedIndexs: [Swift.Int]?, cancelAction: CSPickerView.PickerViewManager.BtnAction?, sureAction: CSPickerView.PickerViewManager.MultipleDoneAction?) + public class func showMultipleAssociatedColsPicker(_ toolBarTitle: Swift.String, data: CSPickerView.PickerViewManager.MultipleAssociatedDataType, defaultSelectedValues: [Swift.String]?, cancelAction: CSPickerView.PickerViewManager.BtnAction?, sureAction: CSPickerView.PickerViewManager.MultipleDoneAction?) + @objc dynamic public class func showCitiesPicker(_ toolBarTitle: Swift.String, type: CSPickerView.CityPickStyle = .province, defaultSelectedValues: [Swift.String]?, cancelAction: CSPickerView.PickerViewManager.BtnAction?, sureAction: CSPickerView.PickerViewManager.MultipleDoneAction?) + @objc dynamic public class func showDatePicker(_ toolBarTitle: Swift.String, datePickerSetting: CSPickerView.DatePickerSetting = DatePickerSetting(), cancelAction: CSPickerView.PickerViewManager.BtnAction?, sureAction: CSPickerView.PickerViewManager.DateDoneAction?) +} +extension CSPickerView.PickerStyles : Swift.Equatable {} +extension CSPickerView.PickerStyles : Swift.Hashable {} +extension CSPickerView.PickerStyles : Swift.RawRepresentable {} +extension CSPickerView.CityPickStyle : Swift.Equatable {} +extension CSPickerView.CityPickStyle : Swift.Hashable {} +extension CSPickerView.CityPickStyle : Swift.RawRepresentable {} +extension CSPickerView.DurationDatePickerViewDateType : Swift.Equatable {} +extension CSPickerView.DurationDatePickerViewDateType : Swift.Hashable {} +extension CSPickerView.DurationDatePickerViewDateType : Swift.RawRepresentable {} diff --git a/CSPickerView/Frameworks/CSPickerView.framework/Modules/CSPickerView.swiftmodule/armv7s-apple-ios.swiftmodule b/CSPickerView/Frameworks/CSPickerView.framework/Modules/CSPickerView.swiftmodule/armv7s-apple-ios.swiftmodule new file mode 100644 index 0000000..e61036d Binary files /dev/null and b/CSPickerView/Frameworks/CSPickerView.framework/Modules/CSPickerView.swiftmodule/armv7s-apple-ios.swiftmodule differ diff --git a/CSPickerView/Frameworks/CSPickerView.framework/Modules/CSPickerView.swiftmodule/armv7s.swiftdoc b/CSPickerView/Frameworks/CSPickerView.framework/Modules/CSPickerView.swiftmodule/armv7s.swiftdoc new file mode 100644 index 0000000..3ff19cc Binary files /dev/null and b/CSPickerView/Frameworks/CSPickerView.framework/Modules/CSPickerView.swiftmodule/armv7s.swiftdoc differ diff --git a/CSPickerView/Frameworks/CSPickerView.framework/Modules/CSPickerView.swiftmodule/armv7s.swiftinterface b/CSPickerView/Frameworks/CSPickerView.framework/Modules/CSPickerView.swiftmodule/armv7s.swiftinterface new file mode 100644 index 0000000..ca5d326 --- /dev/null +++ b/CSPickerView/Frameworks/CSPickerView.framework/Modules/CSPickerView.swiftmodule/armv7s.swiftinterface @@ -0,0 +1,208 @@ +// swift-interface-format-version: 1.0 +// swift-compiler-version: Apple Swift version 5.3.2 (swiftlang-1200.0.45 clang-1200.0.32.28) +// swift-module-flags: -target armv7s-apple-ios9.0 -enable-objc-interop -enable-library-evolution -swift-version 5 -enforce-exclusivity=checked -O -module-name CSPickerView +import Foundation +import Swift +import UIKit +@objc public protocol PickerViewDelegate : AnyObject { + @objc func singleColDidSelecte(_ selectedIndex: Swift.Int, selectedValue: Swift.String) + @objc func multipleColsDidSelecte(_ selectedIndexs: [Swift.Int], selectedValues: [Swift.String]) + @objc func dateDidSelecte(_ selectedDate: Foundation.Date) +} +@objc @_inheritsConvenienceInitializers @objcMembers public class DatePickerSetting : ObjectiveC.NSObject { + @objc public var date: Foundation.Date + @objc public var dateMode: UIKit.UIDatePicker.Mode + @objc public var minimumDate: Foundation.Date? + @objc public var maximumDate: Foundation.Date? + @objc override dynamic public init() + @objc deinit +} +@objc public enum PickerStyles : Swift.Int { + case single + case multiple + case multipleAssociated + case date + public typealias RawValue = Swift.Int + public init?(rawValue: Swift.Int) + public var rawValue: Swift.Int { + get + } +} +@objc public enum CityPickStyle : Swift.Int { + case province + case city + case area + public typealias RawValue = Swift.Int + public init?(rawValue: Swift.Int) + public var rawValue: Swift.Int { + get + } +} +@objc @_inheritsConvenienceInitializers @_hasMissingDesignatedInitializers @objcMembers public class PickerView : UIKit.UIView { + public typealias BtnAction = () -> Swift.Void + public typealias SingleDoneAction = (Swift.Int, Swift.String) -> Swift.Void + public typealias MultipleDoneAction = ([Swift.Int], [Swift.String]) -> Swift.Void + public typealias DateDoneAction = (Foundation.Date) -> Swift.Void + public typealias MultipleAssociatedDataType = [[[Swift.String : [Swift.String]?]]] + @objc public init(pickerStyle: CSPickerView.PickerStyles) + @objc override dynamic public func layoutSubviews() + @objc deinit +} +extension PickerView : UIKit.UIPickerViewDelegate, UIKit.UIPickerViewDataSource { + @objc final public func numberOfComponents(in pickerView: UIKit.UIPickerView) -> Swift.Int + @objc final public func pickerView(_ pickerView: UIKit.UIPickerView, numberOfRowsInComponent component: Swift.Int) -> Swift.Int + @objc final public func pickerView(_ pickerView: UIKit.UIPickerView, didSelectRow row: Swift.Int, inComponent component: Swift.Int) + @objc final public func pickerView(_ pickerView: UIKit.UIPickerView, viewForRow row: Swift.Int, forComponent component: Swift.Int, reusing view: UIKit.UIView?) -> UIKit.UIView +} +extension PickerView { + public class func singleColPicker(_ toolBarTitle: Swift.String, singleColData: [Swift.String], defaultIndex: Swift.Int?, cancelAction: CSPickerView.PickerView.BtnAction?, sureAction: CSPickerView.PickerView.SingleDoneAction?) -> CSPickerView.PickerView + @objc dynamic public class func multipleCosPicker(_ toolBarTitle: Swift.String, multipleColsData: [[Swift.String]], defaultSelectedIndexs: [Swift.Int]?, cancelAction: CSPickerView.PickerView.BtnAction?, doneAction: CSPickerView.PickerView.MultipleDoneAction?) -> CSPickerView.PickerView + public class func multipleAssociatedCosPicker(_ toolBarTitle: Swift.String, multipleAssociatedColsData: CSPickerView.PickerView.MultipleAssociatedDataType, defaultSelectedValues: [Swift.String]?, cancelAction: CSPickerView.PickerView.BtnAction?, doneAction: CSPickerView.PickerView.MultipleDoneAction?) -> CSPickerView.PickerView + @objc dynamic public class func citiesPicker(_ toolBarTitle: Swift.String, type: CSPickerView.CityPickStyle, defaultSelectedValues: [Swift.String]?, cancelAction: CSPickerView.PickerView.BtnAction?, doneAction: CSPickerView.PickerView.MultipleDoneAction?) -> CSPickerView.PickerView + @objc dynamic public class func datePicker(_ toolBarTitle: Swift.String, datePickerSetting: CSPickerView.DatePickerSetting, cancelAction: CSPickerView.PickerView.BtnAction?, doneAction: CSPickerView.PickerView.DateDoneAction?) -> CSPickerView.PickerView +} +@objc @_inheritsConvenienceInitializers @objcMembers public class PickerViewUtils : ObjectiveC.NSObject { + @objc public static var resoureBundle: Foundation.Bundle? { + @objc get + } + @objc public static var addressPlistPath: Swift.String? { + @objc get + } + @objc public static func localizedString(key: Swift.String, defaultValue: Swift.String? = nil) -> Swift.String? + @objc deinit + @objc override dynamic public init() +} +extension PickerViewUtils { + @objc public static func formatDate(date: Foundation.Date, formatStr: Swift.String) -> Swift.String + @objc public static func toDate(dateStr: Swift.String?, dateTypeStr: Swift.String) -> Foundation.Date? +} +@objc @_inheritsConvenienceInitializers @_hasMissingDesignatedInitializers @objcMembers public class SelectPickerView : UIKit.UIView { + @objc public var titleArr: [Swift.String] { + @objc get + @objc set + } + @objc public var cancelAction: CSPickerView.PickerViewManager.BtnAction? + @objc public var sureAction: CSPickerView.PickerViewManager.MultipleDoneAction? + @objc public var singleSureAction: CSPickerView.PickerViewManager.SingleDoneAction? + @objc override dynamic public func layoutSubviews() + @objc deinit +} +extension SelectPickerView { + @objc dynamic public class func showView(title: Swift.String, data: [Swift.String], defaultSelectedIndexs: [Swift.Int]?, cancelAction: @escaping CSPickerView.PickerViewManager.BtnAction, sureAction: @escaping CSPickerView.PickerViewManager.MultipleDoneAction) + @objc dynamic public class func getView(title: Swift.String, data: [Swift.String], defaultSelectedIndexs: [Swift.Int]?) -> CSPickerView.SelectPickerView? + public class func showSingleView(title: Swift.String, data: [Swift.String], defaultSelectedIndex: Swift.Int?, cancelAction: @escaping CSPickerView.PickerViewManager.BtnAction, sureAction: @escaping CSPickerView.PickerViewManager.SingleDoneAction) + public class func getSingleView(title: Swift.String, data: [Swift.String], defaultSelectedIndex: Swift.Int?) -> CSPickerView.SelectPickerView? + @objc dynamic public func show(completion: ((Swift.Bool) -> Swift.Void)? = nil) + @objc dynamic public func dismiss(completion: ((Swift.Bool) -> Swift.Void)? = nil) +} +extension SelectPickerView : UIKit.UITableViewDataSource { + @objc dynamic public func tableView(_ tableView: UIKit.UITableView, numberOfRowsInSection section: Swift.Int) -> Swift.Int + @objc dynamic public func tableView(_ tableView: UIKit.UITableView, cellForRowAt indexPath: Foundation.IndexPath) -> UIKit.UITableViewCell +} +extension SelectPickerView : UIKit.UITableViewDelegate { + @objc dynamic public func tableView(_ tableView: UIKit.UITableView, didSelectRowAt indexPath: Foundation.IndexPath) + @objc dynamic public func tableView(_ tableView: UIKit.UITableView, willDisplay cell: UIKit.UITableViewCell, forRowAt indexPath: Foundation.IndexPath) +} +@objc @_inheritsConvenienceInitializers @objcMembers open class ToolBarView : UIKit.UIView { + @objc open var title: Swift.String { + @objc get + @objc set + } + @objc open var sureAction: CSPickerView.PickerViewManager.BtnAction? + @objc open var cancelAction: CSPickerView.PickerViewManager.BtnAction? + @objc override dynamic public init(frame: CoreGraphics.CGRect) + @available(*, unavailable) + @objc required dynamic public init?(coder aDecoder: Foundation.NSCoder) + @objc override dynamic open func layoutSubviews() + @objc deinit +} +@objc public enum DurationDatePickerViewDateType : Swift.Int { + case YMD + case YMDHM + public var formatStr: Swift.String { + get + } + public typealias RawValue = Swift.Int + public init?(rawValue: Swift.Int) + public var rawValue: Swift.Int { + get + } +} +@objc @_inheritsConvenienceInitializers @_hasMissingDesignatedInitializers @objcMembers open class DurationDatePickerView : UIKit.UIView { + public typealias SureBlock = (Swift.String, Swift.String) -> Swift.Void + public typealias CancelBlock = () -> Swift.Void + @objc public var canGreatNow: Swift.Bool + @objc public var canLessNow: Swift.Bool + @objc public var sureBlock: CSPickerView.DurationDatePickerView.SureBlock? + @objc public var cancelBlock: CSPickerView.DurationDatePickerView.CancelBlock? + @objc public var titleLabel: UIKit.UILabel { + @objc get + @objc set + } + @objc public var startBtn: UIKit.UIButton { + @objc get + @objc set + } + @objc public var endBtn: UIKit.UIButton { + @objc get + @objc set + } + @objc public var cancelBtn: UIKit.UIButton { + @objc get + @objc set + } + @objc public var confirmBtn: UIKit.UIButton { + @objc get + @objc set + } + @available(*, unavailable) + @objc required dynamic public init?(coder aDecoder: Foundation.NSCoder) + @objc deinit +} +extension DurationDatePickerView { + @objc dynamic public class func getPopupView(startDate: Foundation.Date, endDate: Foundation.Date, dateType: CSPickerView.DurationDatePickerViewDateType = .YMD) -> CSPickerView.DurationDatePickerView + @objc dynamic public func show(completion: ((Swift.Bool) -> Swift.Void)? = nil) + @objc dynamic public func dismiss(completion: ((Swift.Bool) -> Swift.Void)? = nil) +} +@objc @_inheritsConvenienceInitializers @_hasMissingDesignatedInitializers @objcMembers public class PickerViewConfig : ObjectiveC.NSObject { + @objc public static let shared: CSPickerView.PickerViewConfig + @objc public var mainBackgroundColor: UIKit.UIColor + @objc public var maskColor: UIKit.UIColor + @objc public var mainTextColor: UIKit.UIColor + @objc public var leftButtonColor: UIKit.UIColor + @objc public var rightButtonColor: UIKit.UIColor + @objc public var centerLabelColor: UIKit.UIColor + @objc public var lineColor: UIKit.UIColor + @objc public var languageCode: Swift.String? + @objc public var animateDuration: Swift.Double + @objc deinit +} +@objc @_inheritsConvenienceInitializers @_hasMissingDesignatedInitializers @objcMembers public class PickerViewManager : UIKit.UIView { + public typealias BtnAction = () -> Swift.Void + public typealias SingleDoneAction = (Swift.Int, Swift.String) -> Swift.Void + public typealias MultipleDoneAction = ([Swift.Int], [Swift.String]) -> Swift.Void + public typealias DateDoneAction = (Foundation.Date) -> Swift.Void + public typealias MultipleAssociatedDataType = [[[Swift.String : [Swift.String]?]]] + @available(*, unavailable) + @objc required dynamic public init?(coder aDecoder: Foundation.NSCoder) + @objc deinit +} +extension PickerViewManager { + @objc dynamic public func dimiss(completion: ((Swift.Bool) -> Swift.Void)? = nil) +} +extension PickerViewManager { + public class func showSingleColPicker(_ toolBarTitle: Swift.String, data: [Swift.String], defaultSelectedIndex: Swift.Int?, cancelAction: CSPickerView.PickerViewManager.BtnAction?, sureAction: CSPickerView.PickerViewManager.SingleDoneAction?) + @objc dynamic public class func showMultipleColsPicker(_ toolBarTitle: Swift.String, data: [[Swift.String]], defaultSelectedIndexs: [Swift.Int]?, cancelAction: CSPickerView.PickerViewManager.BtnAction?, sureAction: CSPickerView.PickerViewManager.MultipleDoneAction?) + public class func showMultipleAssociatedColsPicker(_ toolBarTitle: Swift.String, data: CSPickerView.PickerViewManager.MultipleAssociatedDataType, defaultSelectedValues: [Swift.String]?, cancelAction: CSPickerView.PickerViewManager.BtnAction?, sureAction: CSPickerView.PickerViewManager.MultipleDoneAction?) + @objc dynamic public class func showCitiesPicker(_ toolBarTitle: Swift.String, type: CSPickerView.CityPickStyle = .province, defaultSelectedValues: [Swift.String]?, cancelAction: CSPickerView.PickerViewManager.BtnAction?, sureAction: CSPickerView.PickerViewManager.MultipleDoneAction?) + @objc dynamic public class func showDatePicker(_ toolBarTitle: Swift.String, datePickerSetting: CSPickerView.DatePickerSetting = DatePickerSetting(), cancelAction: CSPickerView.PickerViewManager.BtnAction?, sureAction: CSPickerView.PickerViewManager.DateDoneAction?) +} +extension CSPickerView.PickerStyles : Swift.Equatable {} +extension CSPickerView.PickerStyles : Swift.Hashable {} +extension CSPickerView.PickerStyles : Swift.RawRepresentable {} +extension CSPickerView.CityPickStyle : Swift.Equatable {} +extension CSPickerView.CityPickStyle : Swift.Hashable {} +extension CSPickerView.CityPickStyle : Swift.RawRepresentable {} +extension CSPickerView.DurationDatePickerViewDateType : Swift.Equatable {} +extension CSPickerView.DurationDatePickerViewDateType : Swift.Hashable {} +extension CSPickerView.DurationDatePickerViewDateType : Swift.RawRepresentable {} diff --git a/CSPickerView/Frameworks/CSPickerView.framework/Modules/CSPickerView.swiftmodule/armv7s.swiftmodule b/CSPickerView/Frameworks/CSPickerView.framework/Modules/CSPickerView.swiftmodule/armv7s.swiftmodule new file mode 100644 index 0000000..e61036d Binary files /dev/null and b/CSPickerView/Frameworks/CSPickerView.framework/Modules/CSPickerView.swiftmodule/armv7s.swiftmodule differ diff --git a/CSPickerView/Frameworks/CSPickerView.framework/Modules/CSPickerView.swiftmodule/i386-apple-ios-simulator.swiftdoc b/CSPickerView/Frameworks/CSPickerView.framework/Modules/CSPickerView.swiftmodule/i386-apple-ios-simulator.swiftdoc new file mode 100644 index 0000000..def247b Binary files /dev/null and b/CSPickerView/Frameworks/CSPickerView.framework/Modules/CSPickerView.swiftmodule/i386-apple-ios-simulator.swiftdoc differ diff --git a/CSPickerView/Frameworks/CSPickerView.framework/Modules/CSPickerView.swiftmodule/i386-apple-ios-simulator.swiftinterface b/CSPickerView/Frameworks/CSPickerView.framework/Modules/CSPickerView.swiftmodule/i386-apple-ios-simulator.swiftinterface new file mode 100644 index 0000000..8c0ba9f --- /dev/null +++ b/CSPickerView/Frameworks/CSPickerView.framework/Modules/CSPickerView.swiftmodule/i386-apple-ios-simulator.swiftinterface @@ -0,0 +1,208 @@ +// swift-interface-format-version: 1.0 +// swift-compiler-version: Apple Swift version 5.3.2 (swiftlang-1200.0.45 clang-1200.0.32.28) +// swift-module-flags: -target i386-apple-ios9.0-simulator -enable-objc-interop -enable-library-evolution -swift-version 5 -enforce-exclusivity=checked -O -module-name CSPickerView +import Foundation +import Swift +import UIKit +@objc public protocol PickerViewDelegate : AnyObject { + @objc func singleColDidSelecte(_ selectedIndex: Swift.Int, selectedValue: Swift.String) + @objc func multipleColsDidSelecte(_ selectedIndexs: [Swift.Int], selectedValues: [Swift.String]) + @objc func dateDidSelecte(_ selectedDate: Foundation.Date) +} +@objc @_inheritsConvenienceInitializers @objcMembers public class DatePickerSetting : ObjectiveC.NSObject { + @objc public var date: Foundation.Date + @objc public var dateMode: UIKit.UIDatePicker.Mode + @objc public var minimumDate: Foundation.Date? + @objc public var maximumDate: Foundation.Date? + @objc override dynamic public init() + @objc deinit +} +@objc public enum PickerStyles : Swift.Int { + case single + case multiple + case multipleAssociated + case date + public typealias RawValue = Swift.Int + public init?(rawValue: Swift.Int) + public var rawValue: Swift.Int { + get + } +} +@objc public enum CityPickStyle : Swift.Int { + case province + case city + case area + public typealias RawValue = Swift.Int + public init?(rawValue: Swift.Int) + public var rawValue: Swift.Int { + get + } +} +@objc @_inheritsConvenienceInitializers @_hasMissingDesignatedInitializers @objcMembers public class PickerView : UIKit.UIView { + public typealias BtnAction = () -> Swift.Void + public typealias SingleDoneAction = (Swift.Int, Swift.String) -> Swift.Void + public typealias MultipleDoneAction = ([Swift.Int], [Swift.String]) -> Swift.Void + public typealias DateDoneAction = (Foundation.Date) -> Swift.Void + public typealias MultipleAssociatedDataType = [[[Swift.String : [Swift.String]?]]] + @objc public init(pickerStyle: CSPickerView.PickerStyles) + @objc override dynamic public func layoutSubviews() + @objc deinit +} +extension PickerView : UIKit.UIPickerViewDelegate, UIKit.UIPickerViewDataSource { + @objc final public func numberOfComponents(in pickerView: UIKit.UIPickerView) -> Swift.Int + @objc final public func pickerView(_ pickerView: UIKit.UIPickerView, numberOfRowsInComponent component: Swift.Int) -> Swift.Int + @objc final public func pickerView(_ pickerView: UIKit.UIPickerView, didSelectRow row: Swift.Int, inComponent component: Swift.Int) + @objc final public func pickerView(_ pickerView: UIKit.UIPickerView, viewForRow row: Swift.Int, forComponent component: Swift.Int, reusing view: UIKit.UIView?) -> UIKit.UIView +} +extension PickerView { + public class func singleColPicker(_ toolBarTitle: Swift.String, singleColData: [Swift.String], defaultIndex: Swift.Int?, cancelAction: CSPickerView.PickerView.BtnAction?, sureAction: CSPickerView.PickerView.SingleDoneAction?) -> CSPickerView.PickerView + @objc dynamic public class func multipleCosPicker(_ toolBarTitle: Swift.String, multipleColsData: [[Swift.String]], defaultSelectedIndexs: [Swift.Int]?, cancelAction: CSPickerView.PickerView.BtnAction?, doneAction: CSPickerView.PickerView.MultipleDoneAction?) -> CSPickerView.PickerView + public class func multipleAssociatedCosPicker(_ toolBarTitle: Swift.String, multipleAssociatedColsData: CSPickerView.PickerView.MultipleAssociatedDataType, defaultSelectedValues: [Swift.String]?, cancelAction: CSPickerView.PickerView.BtnAction?, doneAction: CSPickerView.PickerView.MultipleDoneAction?) -> CSPickerView.PickerView + @objc dynamic public class func citiesPicker(_ toolBarTitle: Swift.String, type: CSPickerView.CityPickStyle, defaultSelectedValues: [Swift.String]?, cancelAction: CSPickerView.PickerView.BtnAction?, doneAction: CSPickerView.PickerView.MultipleDoneAction?) -> CSPickerView.PickerView + @objc dynamic public class func datePicker(_ toolBarTitle: Swift.String, datePickerSetting: CSPickerView.DatePickerSetting, cancelAction: CSPickerView.PickerView.BtnAction?, doneAction: CSPickerView.PickerView.DateDoneAction?) -> CSPickerView.PickerView +} +@objc @_inheritsConvenienceInitializers @objcMembers public class PickerViewUtils : ObjectiveC.NSObject { + @objc public static var resoureBundle: Foundation.Bundle? { + @objc get + } + @objc public static var addressPlistPath: Swift.String? { + @objc get + } + @objc public static func localizedString(key: Swift.String, defaultValue: Swift.String? = nil) -> Swift.String? + @objc deinit + @objc override dynamic public init() +} +extension PickerViewUtils { + @objc public static func formatDate(date: Foundation.Date, formatStr: Swift.String) -> Swift.String + @objc public static func toDate(dateStr: Swift.String?, dateTypeStr: Swift.String) -> Foundation.Date? +} +@objc @_inheritsConvenienceInitializers @_hasMissingDesignatedInitializers @objcMembers public class SelectPickerView : UIKit.UIView { + @objc public var titleArr: [Swift.String] { + @objc get + @objc set + } + @objc public var cancelAction: CSPickerView.PickerViewManager.BtnAction? + @objc public var sureAction: CSPickerView.PickerViewManager.MultipleDoneAction? + @objc public var singleSureAction: CSPickerView.PickerViewManager.SingleDoneAction? + @objc override dynamic public func layoutSubviews() + @objc deinit +} +extension SelectPickerView { + @objc dynamic public class func showView(title: Swift.String, data: [Swift.String], defaultSelectedIndexs: [Swift.Int]?, cancelAction: @escaping CSPickerView.PickerViewManager.BtnAction, sureAction: @escaping CSPickerView.PickerViewManager.MultipleDoneAction) + @objc dynamic public class func getView(title: Swift.String, data: [Swift.String], defaultSelectedIndexs: [Swift.Int]?) -> CSPickerView.SelectPickerView? + public class func showSingleView(title: Swift.String, data: [Swift.String], defaultSelectedIndex: Swift.Int?, cancelAction: @escaping CSPickerView.PickerViewManager.BtnAction, sureAction: @escaping CSPickerView.PickerViewManager.SingleDoneAction) + public class func getSingleView(title: Swift.String, data: [Swift.String], defaultSelectedIndex: Swift.Int?) -> CSPickerView.SelectPickerView? + @objc dynamic public func show(completion: ((Swift.Bool) -> Swift.Void)? = nil) + @objc dynamic public func dismiss(completion: ((Swift.Bool) -> Swift.Void)? = nil) +} +extension SelectPickerView : UIKit.UITableViewDataSource { + @objc dynamic public func tableView(_ tableView: UIKit.UITableView, numberOfRowsInSection section: Swift.Int) -> Swift.Int + @objc dynamic public func tableView(_ tableView: UIKit.UITableView, cellForRowAt indexPath: Foundation.IndexPath) -> UIKit.UITableViewCell +} +extension SelectPickerView : UIKit.UITableViewDelegate { + @objc dynamic public func tableView(_ tableView: UIKit.UITableView, didSelectRowAt indexPath: Foundation.IndexPath) + @objc dynamic public func tableView(_ tableView: UIKit.UITableView, willDisplay cell: UIKit.UITableViewCell, forRowAt indexPath: Foundation.IndexPath) +} +@objc @_inheritsConvenienceInitializers @objcMembers open class ToolBarView : UIKit.UIView { + @objc open var title: Swift.String { + @objc get + @objc set + } + @objc open var sureAction: CSPickerView.PickerViewManager.BtnAction? + @objc open var cancelAction: CSPickerView.PickerViewManager.BtnAction? + @objc override dynamic public init(frame: CoreGraphics.CGRect) + @available(*, unavailable) + @objc required dynamic public init?(coder aDecoder: Foundation.NSCoder) + @objc override dynamic open func layoutSubviews() + @objc deinit +} +@objc public enum DurationDatePickerViewDateType : Swift.Int { + case YMD + case YMDHM + public var formatStr: Swift.String { + get + } + public typealias RawValue = Swift.Int + public init?(rawValue: Swift.Int) + public var rawValue: Swift.Int { + get + } +} +@objc @_inheritsConvenienceInitializers @_hasMissingDesignatedInitializers @objcMembers open class DurationDatePickerView : UIKit.UIView { + public typealias SureBlock = (Swift.String, Swift.String) -> Swift.Void + public typealias CancelBlock = () -> Swift.Void + @objc public var canGreatNow: Swift.Bool + @objc public var canLessNow: Swift.Bool + @objc public var sureBlock: CSPickerView.DurationDatePickerView.SureBlock? + @objc public var cancelBlock: CSPickerView.DurationDatePickerView.CancelBlock? + @objc public var titleLabel: UIKit.UILabel { + @objc get + @objc set + } + @objc public var startBtn: UIKit.UIButton { + @objc get + @objc set + } + @objc public var endBtn: UIKit.UIButton { + @objc get + @objc set + } + @objc public var cancelBtn: UIKit.UIButton { + @objc get + @objc set + } + @objc public var confirmBtn: UIKit.UIButton { + @objc get + @objc set + } + @available(*, unavailable) + @objc required dynamic public init?(coder aDecoder: Foundation.NSCoder) + @objc deinit +} +extension DurationDatePickerView { + @objc dynamic public class func getPopupView(startDate: Foundation.Date, endDate: Foundation.Date, dateType: CSPickerView.DurationDatePickerViewDateType = .YMD) -> CSPickerView.DurationDatePickerView + @objc dynamic public func show(completion: ((Swift.Bool) -> Swift.Void)? = nil) + @objc dynamic public func dismiss(completion: ((Swift.Bool) -> Swift.Void)? = nil) +} +@objc @_inheritsConvenienceInitializers @_hasMissingDesignatedInitializers @objcMembers public class PickerViewConfig : ObjectiveC.NSObject { + @objc public static let shared: CSPickerView.PickerViewConfig + @objc public var mainBackgroundColor: UIKit.UIColor + @objc public var maskColor: UIKit.UIColor + @objc public var mainTextColor: UIKit.UIColor + @objc public var leftButtonColor: UIKit.UIColor + @objc public var rightButtonColor: UIKit.UIColor + @objc public var centerLabelColor: UIKit.UIColor + @objc public var lineColor: UIKit.UIColor + @objc public var languageCode: Swift.String? + @objc public var animateDuration: Swift.Double + @objc deinit +} +@objc @_inheritsConvenienceInitializers @_hasMissingDesignatedInitializers @objcMembers public class PickerViewManager : UIKit.UIView { + public typealias BtnAction = () -> Swift.Void + public typealias SingleDoneAction = (Swift.Int, Swift.String) -> Swift.Void + public typealias MultipleDoneAction = ([Swift.Int], [Swift.String]) -> Swift.Void + public typealias DateDoneAction = (Foundation.Date) -> Swift.Void + public typealias MultipleAssociatedDataType = [[[Swift.String : [Swift.String]?]]] + @available(*, unavailable) + @objc required dynamic public init?(coder aDecoder: Foundation.NSCoder) + @objc deinit +} +extension PickerViewManager { + @objc dynamic public func dimiss(completion: ((Swift.Bool) -> Swift.Void)? = nil) +} +extension PickerViewManager { + public class func showSingleColPicker(_ toolBarTitle: Swift.String, data: [Swift.String], defaultSelectedIndex: Swift.Int?, cancelAction: CSPickerView.PickerViewManager.BtnAction?, sureAction: CSPickerView.PickerViewManager.SingleDoneAction?) + @objc dynamic public class func showMultipleColsPicker(_ toolBarTitle: Swift.String, data: [[Swift.String]], defaultSelectedIndexs: [Swift.Int]?, cancelAction: CSPickerView.PickerViewManager.BtnAction?, sureAction: CSPickerView.PickerViewManager.MultipleDoneAction?) + public class func showMultipleAssociatedColsPicker(_ toolBarTitle: Swift.String, data: CSPickerView.PickerViewManager.MultipleAssociatedDataType, defaultSelectedValues: [Swift.String]?, cancelAction: CSPickerView.PickerViewManager.BtnAction?, sureAction: CSPickerView.PickerViewManager.MultipleDoneAction?) + @objc dynamic public class func showCitiesPicker(_ toolBarTitle: Swift.String, type: CSPickerView.CityPickStyle = .province, defaultSelectedValues: [Swift.String]?, cancelAction: CSPickerView.PickerViewManager.BtnAction?, sureAction: CSPickerView.PickerViewManager.MultipleDoneAction?) + @objc dynamic public class func showDatePicker(_ toolBarTitle: Swift.String, datePickerSetting: CSPickerView.DatePickerSetting = DatePickerSetting(), cancelAction: CSPickerView.PickerViewManager.BtnAction?, sureAction: CSPickerView.PickerViewManager.DateDoneAction?) +} +extension CSPickerView.PickerStyles : Swift.Equatable {} +extension CSPickerView.PickerStyles : Swift.Hashable {} +extension CSPickerView.PickerStyles : Swift.RawRepresentable {} +extension CSPickerView.CityPickStyle : Swift.Equatable {} +extension CSPickerView.CityPickStyle : Swift.Hashable {} +extension CSPickerView.CityPickStyle : Swift.RawRepresentable {} +extension CSPickerView.DurationDatePickerViewDateType : Swift.Equatable {} +extension CSPickerView.DurationDatePickerViewDateType : Swift.Hashable {} +extension CSPickerView.DurationDatePickerViewDateType : Swift.RawRepresentable {} diff --git a/CSPickerView/Frameworks/CSPickerView.framework/Modules/CSPickerView.swiftmodule/i386-apple-ios-simulator.swiftmodule b/CSPickerView/Frameworks/CSPickerView.framework/Modules/CSPickerView.swiftmodule/i386-apple-ios-simulator.swiftmodule new file mode 100644 index 0000000..aa8aad0 Binary files /dev/null and b/CSPickerView/Frameworks/CSPickerView.framework/Modules/CSPickerView.swiftmodule/i386-apple-ios-simulator.swiftmodule differ diff --git a/CSPickerView/Frameworks/CSPickerView.framework/Modules/CSPickerView.swiftmodule/i386.swiftdoc b/CSPickerView/Frameworks/CSPickerView.framework/Modules/CSPickerView.swiftmodule/i386.swiftdoc new file mode 100644 index 0000000..def247b Binary files /dev/null and b/CSPickerView/Frameworks/CSPickerView.framework/Modules/CSPickerView.swiftmodule/i386.swiftdoc differ diff --git a/CSPickerView/Frameworks/CSPickerView.framework/Modules/CSPickerView.swiftmodule/i386.swiftinterface b/CSPickerView/Frameworks/CSPickerView.framework/Modules/CSPickerView.swiftmodule/i386.swiftinterface new file mode 100644 index 0000000..8c0ba9f --- /dev/null +++ b/CSPickerView/Frameworks/CSPickerView.framework/Modules/CSPickerView.swiftmodule/i386.swiftinterface @@ -0,0 +1,208 @@ +// swift-interface-format-version: 1.0 +// swift-compiler-version: Apple Swift version 5.3.2 (swiftlang-1200.0.45 clang-1200.0.32.28) +// swift-module-flags: -target i386-apple-ios9.0-simulator -enable-objc-interop -enable-library-evolution -swift-version 5 -enforce-exclusivity=checked -O -module-name CSPickerView +import Foundation +import Swift +import UIKit +@objc public protocol PickerViewDelegate : AnyObject { + @objc func singleColDidSelecte(_ selectedIndex: Swift.Int, selectedValue: Swift.String) + @objc func multipleColsDidSelecte(_ selectedIndexs: [Swift.Int], selectedValues: [Swift.String]) + @objc func dateDidSelecte(_ selectedDate: Foundation.Date) +} +@objc @_inheritsConvenienceInitializers @objcMembers public class DatePickerSetting : ObjectiveC.NSObject { + @objc public var date: Foundation.Date + @objc public var dateMode: UIKit.UIDatePicker.Mode + @objc public var minimumDate: Foundation.Date? + @objc public var maximumDate: Foundation.Date? + @objc override dynamic public init() + @objc deinit +} +@objc public enum PickerStyles : Swift.Int { + case single + case multiple + case multipleAssociated + case date + public typealias RawValue = Swift.Int + public init?(rawValue: Swift.Int) + public var rawValue: Swift.Int { + get + } +} +@objc public enum CityPickStyle : Swift.Int { + case province + case city + case area + public typealias RawValue = Swift.Int + public init?(rawValue: Swift.Int) + public var rawValue: Swift.Int { + get + } +} +@objc @_inheritsConvenienceInitializers @_hasMissingDesignatedInitializers @objcMembers public class PickerView : UIKit.UIView { + public typealias BtnAction = () -> Swift.Void + public typealias SingleDoneAction = (Swift.Int, Swift.String) -> Swift.Void + public typealias MultipleDoneAction = ([Swift.Int], [Swift.String]) -> Swift.Void + public typealias DateDoneAction = (Foundation.Date) -> Swift.Void + public typealias MultipleAssociatedDataType = [[[Swift.String : [Swift.String]?]]] + @objc public init(pickerStyle: CSPickerView.PickerStyles) + @objc override dynamic public func layoutSubviews() + @objc deinit +} +extension PickerView : UIKit.UIPickerViewDelegate, UIKit.UIPickerViewDataSource { + @objc final public func numberOfComponents(in pickerView: UIKit.UIPickerView) -> Swift.Int + @objc final public func pickerView(_ pickerView: UIKit.UIPickerView, numberOfRowsInComponent component: Swift.Int) -> Swift.Int + @objc final public func pickerView(_ pickerView: UIKit.UIPickerView, didSelectRow row: Swift.Int, inComponent component: Swift.Int) + @objc final public func pickerView(_ pickerView: UIKit.UIPickerView, viewForRow row: Swift.Int, forComponent component: Swift.Int, reusing view: UIKit.UIView?) -> UIKit.UIView +} +extension PickerView { + public class func singleColPicker(_ toolBarTitle: Swift.String, singleColData: [Swift.String], defaultIndex: Swift.Int?, cancelAction: CSPickerView.PickerView.BtnAction?, sureAction: CSPickerView.PickerView.SingleDoneAction?) -> CSPickerView.PickerView + @objc dynamic public class func multipleCosPicker(_ toolBarTitle: Swift.String, multipleColsData: [[Swift.String]], defaultSelectedIndexs: [Swift.Int]?, cancelAction: CSPickerView.PickerView.BtnAction?, doneAction: CSPickerView.PickerView.MultipleDoneAction?) -> CSPickerView.PickerView + public class func multipleAssociatedCosPicker(_ toolBarTitle: Swift.String, multipleAssociatedColsData: CSPickerView.PickerView.MultipleAssociatedDataType, defaultSelectedValues: [Swift.String]?, cancelAction: CSPickerView.PickerView.BtnAction?, doneAction: CSPickerView.PickerView.MultipleDoneAction?) -> CSPickerView.PickerView + @objc dynamic public class func citiesPicker(_ toolBarTitle: Swift.String, type: CSPickerView.CityPickStyle, defaultSelectedValues: [Swift.String]?, cancelAction: CSPickerView.PickerView.BtnAction?, doneAction: CSPickerView.PickerView.MultipleDoneAction?) -> CSPickerView.PickerView + @objc dynamic public class func datePicker(_ toolBarTitle: Swift.String, datePickerSetting: CSPickerView.DatePickerSetting, cancelAction: CSPickerView.PickerView.BtnAction?, doneAction: CSPickerView.PickerView.DateDoneAction?) -> CSPickerView.PickerView +} +@objc @_inheritsConvenienceInitializers @objcMembers public class PickerViewUtils : ObjectiveC.NSObject { + @objc public static var resoureBundle: Foundation.Bundle? { + @objc get + } + @objc public static var addressPlistPath: Swift.String? { + @objc get + } + @objc public static func localizedString(key: Swift.String, defaultValue: Swift.String? = nil) -> Swift.String? + @objc deinit + @objc override dynamic public init() +} +extension PickerViewUtils { + @objc public static func formatDate(date: Foundation.Date, formatStr: Swift.String) -> Swift.String + @objc public static func toDate(dateStr: Swift.String?, dateTypeStr: Swift.String) -> Foundation.Date? +} +@objc @_inheritsConvenienceInitializers @_hasMissingDesignatedInitializers @objcMembers public class SelectPickerView : UIKit.UIView { + @objc public var titleArr: [Swift.String] { + @objc get + @objc set + } + @objc public var cancelAction: CSPickerView.PickerViewManager.BtnAction? + @objc public var sureAction: CSPickerView.PickerViewManager.MultipleDoneAction? + @objc public var singleSureAction: CSPickerView.PickerViewManager.SingleDoneAction? + @objc override dynamic public func layoutSubviews() + @objc deinit +} +extension SelectPickerView { + @objc dynamic public class func showView(title: Swift.String, data: [Swift.String], defaultSelectedIndexs: [Swift.Int]?, cancelAction: @escaping CSPickerView.PickerViewManager.BtnAction, sureAction: @escaping CSPickerView.PickerViewManager.MultipleDoneAction) + @objc dynamic public class func getView(title: Swift.String, data: [Swift.String], defaultSelectedIndexs: [Swift.Int]?) -> CSPickerView.SelectPickerView? + public class func showSingleView(title: Swift.String, data: [Swift.String], defaultSelectedIndex: Swift.Int?, cancelAction: @escaping CSPickerView.PickerViewManager.BtnAction, sureAction: @escaping CSPickerView.PickerViewManager.SingleDoneAction) + public class func getSingleView(title: Swift.String, data: [Swift.String], defaultSelectedIndex: Swift.Int?) -> CSPickerView.SelectPickerView? + @objc dynamic public func show(completion: ((Swift.Bool) -> Swift.Void)? = nil) + @objc dynamic public func dismiss(completion: ((Swift.Bool) -> Swift.Void)? = nil) +} +extension SelectPickerView : UIKit.UITableViewDataSource { + @objc dynamic public func tableView(_ tableView: UIKit.UITableView, numberOfRowsInSection section: Swift.Int) -> Swift.Int + @objc dynamic public func tableView(_ tableView: UIKit.UITableView, cellForRowAt indexPath: Foundation.IndexPath) -> UIKit.UITableViewCell +} +extension SelectPickerView : UIKit.UITableViewDelegate { + @objc dynamic public func tableView(_ tableView: UIKit.UITableView, didSelectRowAt indexPath: Foundation.IndexPath) + @objc dynamic public func tableView(_ tableView: UIKit.UITableView, willDisplay cell: UIKit.UITableViewCell, forRowAt indexPath: Foundation.IndexPath) +} +@objc @_inheritsConvenienceInitializers @objcMembers open class ToolBarView : UIKit.UIView { + @objc open var title: Swift.String { + @objc get + @objc set + } + @objc open var sureAction: CSPickerView.PickerViewManager.BtnAction? + @objc open var cancelAction: CSPickerView.PickerViewManager.BtnAction? + @objc override dynamic public init(frame: CoreGraphics.CGRect) + @available(*, unavailable) + @objc required dynamic public init?(coder aDecoder: Foundation.NSCoder) + @objc override dynamic open func layoutSubviews() + @objc deinit +} +@objc public enum DurationDatePickerViewDateType : Swift.Int { + case YMD + case YMDHM + public var formatStr: Swift.String { + get + } + public typealias RawValue = Swift.Int + public init?(rawValue: Swift.Int) + public var rawValue: Swift.Int { + get + } +} +@objc @_inheritsConvenienceInitializers @_hasMissingDesignatedInitializers @objcMembers open class DurationDatePickerView : UIKit.UIView { + public typealias SureBlock = (Swift.String, Swift.String) -> Swift.Void + public typealias CancelBlock = () -> Swift.Void + @objc public var canGreatNow: Swift.Bool + @objc public var canLessNow: Swift.Bool + @objc public var sureBlock: CSPickerView.DurationDatePickerView.SureBlock? + @objc public var cancelBlock: CSPickerView.DurationDatePickerView.CancelBlock? + @objc public var titleLabel: UIKit.UILabel { + @objc get + @objc set + } + @objc public var startBtn: UIKit.UIButton { + @objc get + @objc set + } + @objc public var endBtn: UIKit.UIButton { + @objc get + @objc set + } + @objc public var cancelBtn: UIKit.UIButton { + @objc get + @objc set + } + @objc public var confirmBtn: UIKit.UIButton { + @objc get + @objc set + } + @available(*, unavailable) + @objc required dynamic public init?(coder aDecoder: Foundation.NSCoder) + @objc deinit +} +extension DurationDatePickerView { + @objc dynamic public class func getPopupView(startDate: Foundation.Date, endDate: Foundation.Date, dateType: CSPickerView.DurationDatePickerViewDateType = .YMD) -> CSPickerView.DurationDatePickerView + @objc dynamic public func show(completion: ((Swift.Bool) -> Swift.Void)? = nil) + @objc dynamic public func dismiss(completion: ((Swift.Bool) -> Swift.Void)? = nil) +} +@objc @_inheritsConvenienceInitializers @_hasMissingDesignatedInitializers @objcMembers public class PickerViewConfig : ObjectiveC.NSObject { + @objc public static let shared: CSPickerView.PickerViewConfig + @objc public var mainBackgroundColor: UIKit.UIColor + @objc public var maskColor: UIKit.UIColor + @objc public var mainTextColor: UIKit.UIColor + @objc public var leftButtonColor: UIKit.UIColor + @objc public var rightButtonColor: UIKit.UIColor + @objc public var centerLabelColor: UIKit.UIColor + @objc public var lineColor: UIKit.UIColor + @objc public var languageCode: Swift.String? + @objc public var animateDuration: Swift.Double + @objc deinit +} +@objc @_inheritsConvenienceInitializers @_hasMissingDesignatedInitializers @objcMembers public class PickerViewManager : UIKit.UIView { + public typealias BtnAction = () -> Swift.Void + public typealias SingleDoneAction = (Swift.Int, Swift.String) -> Swift.Void + public typealias MultipleDoneAction = ([Swift.Int], [Swift.String]) -> Swift.Void + public typealias DateDoneAction = (Foundation.Date) -> Swift.Void + public typealias MultipleAssociatedDataType = [[[Swift.String : [Swift.String]?]]] + @available(*, unavailable) + @objc required dynamic public init?(coder aDecoder: Foundation.NSCoder) + @objc deinit +} +extension PickerViewManager { + @objc dynamic public func dimiss(completion: ((Swift.Bool) -> Swift.Void)? = nil) +} +extension PickerViewManager { + public class func showSingleColPicker(_ toolBarTitle: Swift.String, data: [Swift.String], defaultSelectedIndex: Swift.Int?, cancelAction: CSPickerView.PickerViewManager.BtnAction?, sureAction: CSPickerView.PickerViewManager.SingleDoneAction?) + @objc dynamic public class func showMultipleColsPicker(_ toolBarTitle: Swift.String, data: [[Swift.String]], defaultSelectedIndexs: [Swift.Int]?, cancelAction: CSPickerView.PickerViewManager.BtnAction?, sureAction: CSPickerView.PickerViewManager.MultipleDoneAction?) + public class func showMultipleAssociatedColsPicker(_ toolBarTitle: Swift.String, data: CSPickerView.PickerViewManager.MultipleAssociatedDataType, defaultSelectedValues: [Swift.String]?, cancelAction: CSPickerView.PickerViewManager.BtnAction?, sureAction: CSPickerView.PickerViewManager.MultipleDoneAction?) + @objc dynamic public class func showCitiesPicker(_ toolBarTitle: Swift.String, type: CSPickerView.CityPickStyle = .province, defaultSelectedValues: [Swift.String]?, cancelAction: CSPickerView.PickerViewManager.BtnAction?, sureAction: CSPickerView.PickerViewManager.MultipleDoneAction?) + @objc dynamic public class func showDatePicker(_ toolBarTitle: Swift.String, datePickerSetting: CSPickerView.DatePickerSetting = DatePickerSetting(), cancelAction: CSPickerView.PickerViewManager.BtnAction?, sureAction: CSPickerView.PickerViewManager.DateDoneAction?) +} +extension CSPickerView.PickerStyles : Swift.Equatable {} +extension CSPickerView.PickerStyles : Swift.Hashable {} +extension CSPickerView.PickerStyles : Swift.RawRepresentable {} +extension CSPickerView.CityPickStyle : Swift.Equatable {} +extension CSPickerView.CityPickStyle : Swift.Hashable {} +extension CSPickerView.CityPickStyle : Swift.RawRepresentable {} +extension CSPickerView.DurationDatePickerViewDateType : Swift.Equatable {} +extension CSPickerView.DurationDatePickerViewDateType : Swift.Hashable {} +extension CSPickerView.DurationDatePickerViewDateType : Swift.RawRepresentable {} diff --git a/CSPickerView/Frameworks/CSPickerView.framework/Modules/CSPickerView.swiftmodule/i386.swiftmodule b/CSPickerView/Frameworks/CSPickerView.framework/Modules/CSPickerView.swiftmodule/i386.swiftmodule new file mode 100644 index 0000000..aa8aad0 Binary files /dev/null and b/CSPickerView/Frameworks/CSPickerView.framework/Modules/CSPickerView.swiftmodule/i386.swiftmodule differ diff --git a/CSPickerView/Frameworks/CSPickerView.framework/Modules/CSPickerView.swiftmodule/x86_64-apple-ios-simulator.swiftdoc b/CSPickerView/Frameworks/CSPickerView.framework/Modules/CSPickerView.swiftmodule/x86_64-apple-ios-simulator.swiftdoc new file mode 100644 index 0000000..ff97bea Binary files /dev/null and b/CSPickerView/Frameworks/CSPickerView.framework/Modules/CSPickerView.swiftmodule/x86_64-apple-ios-simulator.swiftdoc differ diff --git a/CSPickerView/Frameworks/CSPickerView.framework/Modules/CSPickerView.swiftmodule/x86_64-apple-ios-simulator.swiftinterface b/CSPickerView/Frameworks/CSPickerView.framework/Modules/CSPickerView.swiftmodule/x86_64-apple-ios-simulator.swiftinterface new file mode 100644 index 0000000..bc85aee --- /dev/null +++ b/CSPickerView/Frameworks/CSPickerView.framework/Modules/CSPickerView.swiftmodule/x86_64-apple-ios-simulator.swiftinterface @@ -0,0 +1,208 @@ +// swift-interface-format-version: 1.0 +// swift-compiler-version: Apple Swift version 5.3.2 (swiftlang-1200.0.45 clang-1200.0.32.28) +// swift-module-flags: -target x86_64-apple-ios9.0-simulator -enable-objc-interop -enable-library-evolution -swift-version 5 -enforce-exclusivity=checked -O -module-name CSPickerView +import Foundation +import Swift +import UIKit +@objc public protocol PickerViewDelegate : AnyObject { + @objc func singleColDidSelecte(_ selectedIndex: Swift.Int, selectedValue: Swift.String) + @objc func multipleColsDidSelecte(_ selectedIndexs: [Swift.Int], selectedValues: [Swift.String]) + @objc func dateDidSelecte(_ selectedDate: Foundation.Date) +} +@objc @_inheritsConvenienceInitializers @objcMembers public class DatePickerSetting : ObjectiveC.NSObject { + @objc public var date: Foundation.Date + @objc public var dateMode: UIKit.UIDatePicker.Mode + @objc public var minimumDate: Foundation.Date? + @objc public var maximumDate: Foundation.Date? + @objc override dynamic public init() + @objc deinit +} +@objc public enum PickerStyles : Swift.Int { + case single + case multiple + case multipleAssociated + case date + public typealias RawValue = Swift.Int + public init?(rawValue: Swift.Int) + public var rawValue: Swift.Int { + get + } +} +@objc public enum CityPickStyle : Swift.Int { + case province + case city + case area + public typealias RawValue = Swift.Int + public init?(rawValue: Swift.Int) + public var rawValue: Swift.Int { + get + } +} +@objc @_inheritsConvenienceInitializers @_hasMissingDesignatedInitializers @objcMembers public class PickerView : UIKit.UIView { + public typealias BtnAction = () -> Swift.Void + public typealias SingleDoneAction = (Swift.Int, Swift.String) -> Swift.Void + public typealias MultipleDoneAction = ([Swift.Int], [Swift.String]) -> Swift.Void + public typealias DateDoneAction = (Foundation.Date) -> Swift.Void + public typealias MultipleAssociatedDataType = [[[Swift.String : [Swift.String]?]]] + @objc public init(pickerStyle: CSPickerView.PickerStyles) + @objc override dynamic public func layoutSubviews() + @objc deinit +} +extension PickerView : UIKit.UIPickerViewDelegate, UIKit.UIPickerViewDataSource { + @objc final public func numberOfComponents(in pickerView: UIKit.UIPickerView) -> Swift.Int + @objc final public func pickerView(_ pickerView: UIKit.UIPickerView, numberOfRowsInComponent component: Swift.Int) -> Swift.Int + @objc final public func pickerView(_ pickerView: UIKit.UIPickerView, didSelectRow row: Swift.Int, inComponent component: Swift.Int) + @objc final public func pickerView(_ pickerView: UIKit.UIPickerView, viewForRow row: Swift.Int, forComponent component: Swift.Int, reusing view: UIKit.UIView?) -> UIKit.UIView +} +extension PickerView { + public class func singleColPicker(_ toolBarTitle: Swift.String, singleColData: [Swift.String], defaultIndex: Swift.Int?, cancelAction: CSPickerView.PickerView.BtnAction?, sureAction: CSPickerView.PickerView.SingleDoneAction?) -> CSPickerView.PickerView + @objc dynamic public class func multipleCosPicker(_ toolBarTitle: Swift.String, multipleColsData: [[Swift.String]], defaultSelectedIndexs: [Swift.Int]?, cancelAction: CSPickerView.PickerView.BtnAction?, doneAction: CSPickerView.PickerView.MultipleDoneAction?) -> CSPickerView.PickerView + public class func multipleAssociatedCosPicker(_ toolBarTitle: Swift.String, multipleAssociatedColsData: CSPickerView.PickerView.MultipleAssociatedDataType, defaultSelectedValues: [Swift.String]?, cancelAction: CSPickerView.PickerView.BtnAction?, doneAction: CSPickerView.PickerView.MultipleDoneAction?) -> CSPickerView.PickerView + @objc dynamic public class func citiesPicker(_ toolBarTitle: Swift.String, type: CSPickerView.CityPickStyle, defaultSelectedValues: [Swift.String]?, cancelAction: CSPickerView.PickerView.BtnAction?, doneAction: CSPickerView.PickerView.MultipleDoneAction?) -> CSPickerView.PickerView + @objc dynamic public class func datePicker(_ toolBarTitle: Swift.String, datePickerSetting: CSPickerView.DatePickerSetting, cancelAction: CSPickerView.PickerView.BtnAction?, doneAction: CSPickerView.PickerView.DateDoneAction?) -> CSPickerView.PickerView +} +@objc @_inheritsConvenienceInitializers @objcMembers public class PickerViewUtils : ObjectiveC.NSObject { + @objc public static var resoureBundle: Foundation.Bundle? { + @objc get + } + @objc public static var addressPlistPath: Swift.String? { + @objc get + } + @objc public static func localizedString(key: Swift.String, defaultValue: Swift.String? = nil) -> Swift.String? + @objc deinit + @objc override dynamic public init() +} +extension PickerViewUtils { + @objc public static func formatDate(date: Foundation.Date, formatStr: Swift.String) -> Swift.String + @objc public static func toDate(dateStr: Swift.String?, dateTypeStr: Swift.String) -> Foundation.Date? +} +@objc @_inheritsConvenienceInitializers @_hasMissingDesignatedInitializers @objcMembers public class SelectPickerView : UIKit.UIView { + @objc public var titleArr: [Swift.String] { + @objc get + @objc set + } + @objc public var cancelAction: CSPickerView.PickerViewManager.BtnAction? + @objc public var sureAction: CSPickerView.PickerViewManager.MultipleDoneAction? + @objc public var singleSureAction: CSPickerView.PickerViewManager.SingleDoneAction? + @objc override dynamic public func layoutSubviews() + @objc deinit +} +extension SelectPickerView { + @objc dynamic public class func showView(title: Swift.String, data: [Swift.String], defaultSelectedIndexs: [Swift.Int]?, cancelAction: @escaping CSPickerView.PickerViewManager.BtnAction, sureAction: @escaping CSPickerView.PickerViewManager.MultipleDoneAction) + @objc dynamic public class func getView(title: Swift.String, data: [Swift.String], defaultSelectedIndexs: [Swift.Int]?) -> CSPickerView.SelectPickerView? + public class func showSingleView(title: Swift.String, data: [Swift.String], defaultSelectedIndex: Swift.Int?, cancelAction: @escaping CSPickerView.PickerViewManager.BtnAction, sureAction: @escaping CSPickerView.PickerViewManager.SingleDoneAction) + public class func getSingleView(title: Swift.String, data: [Swift.String], defaultSelectedIndex: Swift.Int?) -> CSPickerView.SelectPickerView? + @objc dynamic public func show(completion: ((Swift.Bool) -> Swift.Void)? = nil) + @objc dynamic public func dismiss(completion: ((Swift.Bool) -> Swift.Void)? = nil) +} +extension SelectPickerView : UIKit.UITableViewDataSource { + @objc dynamic public func tableView(_ tableView: UIKit.UITableView, numberOfRowsInSection section: Swift.Int) -> Swift.Int + @objc dynamic public func tableView(_ tableView: UIKit.UITableView, cellForRowAt indexPath: Foundation.IndexPath) -> UIKit.UITableViewCell +} +extension SelectPickerView : UIKit.UITableViewDelegate { + @objc dynamic public func tableView(_ tableView: UIKit.UITableView, didSelectRowAt indexPath: Foundation.IndexPath) + @objc dynamic public func tableView(_ tableView: UIKit.UITableView, willDisplay cell: UIKit.UITableViewCell, forRowAt indexPath: Foundation.IndexPath) +} +@objc @_inheritsConvenienceInitializers @objcMembers open class ToolBarView : UIKit.UIView { + @objc open var title: Swift.String { + @objc get + @objc set + } + @objc open var sureAction: CSPickerView.PickerViewManager.BtnAction? + @objc open var cancelAction: CSPickerView.PickerViewManager.BtnAction? + @objc override dynamic public init(frame: CoreGraphics.CGRect) + @available(*, unavailable) + @objc required dynamic public init?(coder aDecoder: Foundation.NSCoder) + @objc override dynamic open func layoutSubviews() + @objc deinit +} +@objc public enum DurationDatePickerViewDateType : Swift.Int { + case YMD + case YMDHM + public var formatStr: Swift.String { + get + } + public typealias RawValue = Swift.Int + public init?(rawValue: Swift.Int) + public var rawValue: Swift.Int { + get + } +} +@objc @_inheritsConvenienceInitializers @_hasMissingDesignatedInitializers @objcMembers open class DurationDatePickerView : UIKit.UIView { + public typealias SureBlock = (Swift.String, Swift.String) -> Swift.Void + public typealias CancelBlock = () -> Swift.Void + @objc public var canGreatNow: Swift.Bool + @objc public var canLessNow: Swift.Bool + @objc public var sureBlock: CSPickerView.DurationDatePickerView.SureBlock? + @objc public var cancelBlock: CSPickerView.DurationDatePickerView.CancelBlock? + @objc public var titleLabel: UIKit.UILabel { + @objc get + @objc set + } + @objc public var startBtn: UIKit.UIButton { + @objc get + @objc set + } + @objc public var endBtn: UIKit.UIButton { + @objc get + @objc set + } + @objc public var cancelBtn: UIKit.UIButton { + @objc get + @objc set + } + @objc public var confirmBtn: UIKit.UIButton { + @objc get + @objc set + } + @available(*, unavailable) + @objc required dynamic public init?(coder aDecoder: Foundation.NSCoder) + @objc deinit +} +extension DurationDatePickerView { + @objc dynamic public class func getPopupView(startDate: Foundation.Date, endDate: Foundation.Date, dateType: CSPickerView.DurationDatePickerViewDateType = .YMD) -> CSPickerView.DurationDatePickerView + @objc dynamic public func show(completion: ((Swift.Bool) -> Swift.Void)? = nil) + @objc dynamic public func dismiss(completion: ((Swift.Bool) -> Swift.Void)? = nil) +} +@objc @_inheritsConvenienceInitializers @_hasMissingDesignatedInitializers @objcMembers public class PickerViewConfig : ObjectiveC.NSObject { + @objc public static let shared: CSPickerView.PickerViewConfig + @objc public var mainBackgroundColor: UIKit.UIColor + @objc public var maskColor: UIKit.UIColor + @objc public var mainTextColor: UIKit.UIColor + @objc public var leftButtonColor: UIKit.UIColor + @objc public var rightButtonColor: UIKit.UIColor + @objc public var centerLabelColor: UIKit.UIColor + @objc public var lineColor: UIKit.UIColor + @objc public var languageCode: Swift.String? + @objc public var animateDuration: Swift.Double + @objc deinit +} +@objc @_inheritsConvenienceInitializers @_hasMissingDesignatedInitializers @objcMembers public class PickerViewManager : UIKit.UIView { + public typealias BtnAction = () -> Swift.Void + public typealias SingleDoneAction = (Swift.Int, Swift.String) -> Swift.Void + public typealias MultipleDoneAction = ([Swift.Int], [Swift.String]) -> Swift.Void + public typealias DateDoneAction = (Foundation.Date) -> Swift.Void + public typealias MultipleAssociatedDataType = [[[Swift.String : [Swift.String]?]]] + @available(*, unavailable) + @objc required dynamic public init?(coder aDecoder: Foundation.NSCoder) + @objc deinit +} +extension PickerViewManager { + @objc dynamic public func dimiss(completion: ((Swift.Bool) -> Swift.Void)? = nil) +} +extension PickerViewManager { + public class func showSingleColPicker(_ toolBarTitle: Swift.String, data: [Swift.String], defaultSelectedIndex: Swift.Int?, cancelAction: CSPickerView.PickerViewManager.BtnAction?, sureAction: CSPickerView.PickerViewManager.SingleDoneAction?) + @objc dynamic public class func showMultipleColsPicker(_ toolBarTitle: Swift.String, data: [[Swift.String]], defaultSelectedIndexs: [Swift.Int]?, cancelAction: CSPickerView.PickerViewManager.BtnAction?, sureAction: CSPickerView.PickerViewManager.MultipleDoneAction?) + public class func showMultipleAssociatedColsPicker(_ toolBarTitle: Swift.String, data: CSPickerView.PickerViewManager.MultipleAssociatedDataType, defaultSelectedValues: [Swift.String]?, cancelAction: CSPickerView.PickerViewManager.BtnAction?, sureAction: CSPickerView.PickerViewManager.MultipleDoneAction?) + @objc dynamic public class func showCitiesPicker(_ toolBarTitle: Swift.String, type: CSPickerView.CityPickStyle = .province, defaultSelectedValues: [Swift.String]?, cancelAction: CSPickerView.PickerViewManager.BtnAction?, sureAction: CSPickerView.PickerViewManager.MultipleDoneAction?) + @objc dynamic public class func showDatePicker(_ toolBarTitle: Swift.String, datePickerSetting: CSPickerView.DatePickerSetting = DatePickerSetting(), cancelAction: CSPickerView.PickerViewManager.BtnAction?, sureAction: CSPickerView.PickerViewManager.DateDoneAction?) +} +extension CSPickerView.PickerStyles : Swift.Equatable {} +extension CSPickerView.PickerStyles : Swift.Hashable {} +extension CSPickerView.PickerStyles : Swift.RawRepresentable {} +extension CSPickerView.CityPickStyle : Swift.Equatable {} +extension CSPickerView.CityPickStyle : Swift.Hashable {} +extension CSPickerView.CityPickStyle : Swift.RawRepresentable {} +extension CSPickerView.DurationDatePickerViewDateType : Swift.Equatable {} +extension CSPickerView.DurationDatePickerViewDateType : Swift.Hashable {} +extension CSPickerView.DurationDatePickerViewDateType : Swift.RawRepresentable {} diff --git a/CSPickerView/Frameworks/CSPickerView.framework/Modules/CSPickerView.swiftmodule/x86_64-apple-ios-simulator.swiftmodule b/CSPickerView/Frameworks/CSPickerView.framework/Modules/CSPickerView.swiftmodule/x86_64-apple-ios-simulator.swiftmodule new file mode 100644 index 0000000..641044e Binary files /dev/null and b/CSPickerView/Frameworks/CSPickerView.framework/Modules/CSPickerView.swiftmodule/x86_64-apple-ios-simulator.swiftmodule differ diff --git a/CSPickerView/Frameworks/CSPickerView.framework/Modules/CSPickerView.swiftmodule/x86_64.swiftdoc b/CSPickerView/Frameworks/CSPickerView.framework/Modules/CSPickerView.swiftmodule/x86_64.swiftdoc new file mode 100644 index 0000000..ff97bea Binary files /dev/null and b/CSPickerView/Frameworks/CSPickerView.framework/Modules/CSPickerView.swiftmodule/x86_64.swiftdoc differ diff --git a/CSPickerView/Frameworks/CSPickerView.framework/Modules/CSPickerView.swiftmodule/x86_64.swiftinterface b/CSPickerView/Frameworks/CSPickerView.framework/Modules/CSPickerView.swiftmodule/x86_64.swiftinterface new file mode 100644 index 0000000..bc85aee --- /dev/null +++ b/CSPickerView/Frameworks/CSPickerView.framework/Modules/CSPickerView.swiftmodule/x86_64.swiftinterface @@ -0,0 +1,208 @@ +// swift-interface-format-version: 1.0 +// swift-compiler-version: Apple Swift version 5.3.2 (swiftlang-1200.0.45 clang-1200.0.32.28) +// swift-module-flags: -target x86_64-apple-ios9.0-simulator -enable-objc-interop -enable-library-evolution -swift-version 5 -enforce-exclusivity=checked -O -module-name CSPickerView +import Foundation +import Swift +import UIKit +@objc public protocol PickerViewDelegate : AnyObject { + @objc func singleColDidSelecte(_ selectedIndex: Swift.Int, selectedValue: Swift.String) + @objc func multipleColsDidSelecte(_ selectedIndexs: [Swift.Int], selectedValues: [Swift.String]) + @objc func dateDidSelecte(_ selectedDate: Foundation.Date) +} +@objc @_inheritsConvenienceInitializers @objcMembers public class DatePickerSetting : ObjectiveC.NSObject { + @objc public var date: Foundation.Date + @objc public var dateMode: UIKit.UIDatePicker.Mode + @objc public var minimumDate: Foundation.Date? + @objc public var maximumDate: Foundation.Date? + @objc override dynamic public init() + @objc deinit +} +@objc public enum PickerStyles : Swift.Int { + case single + case multiple + case multipleAssociated + case date + public typealias RawValue = Swift.Int + public init?(rawValue: Swift.Int) + public var rawValue: Swift.Int { + get + } +} +@objc public enum CityPickStyle : Swift.Int { + case province + case city + case area + public typealias RawValue = Swift.Int + public init?(rawValue: Swift.Int) + public var rawValue: Swift.Int { + get + } +} +@objc @_inheritsConvenienceInitializers @_hasMissingDesignatedInitializers @objcMembers public class PickerView : UIKit.UIView { + public typealias BtnAction = () -> Swift.Void + public typealias SingleDoneAction = (Swift.Int, Swift.String) -> Swift.Void + public typealias MultipleDoneAction = ([Swift.Int], [Swift.String]) -> Swift.Void + public typealias DateDoneAction = (Foundation.Date) -> Swift.Void + public typealias MultipleAssociatedDataType = [[[Swift.String : [Swift.String]?]]] + @objc public init(pickerStyle: CSPickerView.PickerStyles) + @objc override dynamic public func layoutSubviews() + @objc deinit +} +extension PickerView : UIKit.UIPickerViewDelegate, UIKit.UIPickerViewDataSource { + @objc final public func numberOfComponents(in pickerView: UIKit.UIPickerView) -> Swift.Int + @objc final public func pickerView(_ pickerView: UIKit.UIPickerView, numberOfRowsInComponent component: Swift.Int) -> Swift.Int + @objc final public func pickerView(_ pickerView: UIKit.UIPickerView, didSelectRow row: Swift.Int, inComponent component: Swift.Int) + @objc final public func pickerView(_ pickerView: UIKit.UIPickerView, viewForRow row: Swift.Int, forComponent component: Swift.Int, reusing view: UIKit.UIView?) -> UIKit.UIView +} +extension PickerView { + public class func singleColPicker(_ toolBarTitle: Swift.String, singleColData: [Swift.String], defaultIndex: Swift.Int?, cancelAction: CSPickerView.PickerView.BtnAction?, sureAction: CSPickerView.PickerView.SingleDoneAction?) -> CSPickerView.PickerView + @objc dynamic public class func multipleCosPicker(_ toolBarTitle: Swift.String, multipleColsData: [[Swift.String]], defaultSelectedIndexs: [Swift.Int]?, cancelAction: CSPickerView.PickerView.BtnAction?, doneAction: CSPickerView.PickerView.MultipleDoneAction?) -> CSPickerView.PickerView + public class func multipleAssociatedCosPicker(_ toolBarTitle: Swift.String, multipleAssociatedColsData: CSPickerView.PickerView.MultipleAssociatedDataType, defaultSelectedValues: [Swift.String]?, cancelAction: CSPickerView.PickerView.BtnAction?, doneAction: CSPickerView.PickerView.MultipleDoneAction?) -> CSPickerView.PickerView + @objc dynamic public class func citiesPicker(_ toolBarTitle: Swift.String, type: CSPickerView.CityPickStyle, defaultSelectedValues: [Swift.String]?, cancelAction: CSPickerView.PickerView.BtnAction?, doneAction: CSPickerView.PickerView.MultipleDoneAction?) -> CSPickerView.PickerView + @objc dynamic public class func datePicker(_ toolBarTitle: Swift.String, datePickerSetting: CSPickerView.DatePickerSetting, cancelAction: CSPickerView.PickerView.BtnAction?, doneAction: CSPickerView.PickerView.DateDoneAction?) -> CSPickerView.PickerView +} +@objc @_inheritsConvenienceInitializers @objcMembers public class PickerViewUtils : ObjectiveC.NSObject { + @objc public static var resoureBundle: Foundation.Bundle? { + @objc get + } + @objc public static var addressPlistPath: Swift.String? { + @objc get + } + @objc public static func localizedString(key: Swift.String, defaultValue: Swift.String? = nil) -> Swift.String? + @objc deinit + @objc override dynamic public init() +} +extension PickerViewUtils { + @objc public static func formatDate(date: Foundation.Date, formatStr: Swift.String) -> Swift.String + @objc public static func toDate(dateStr: Swift.String?, dateTypeStr: Swift.String) -> Foundation.Date? +} +@objc @_inheritsConvenienceInitializers @_hasMissingDesignatedInitializers @objcMembers public class SelectPickerView : UIKit.UIView { + @objc public var titleArr: [Swift.String] { + @objc get + @objc set + } + @objc public var cancelAction: CSPickerView.PickerViewManager.BtnAction? + @objc public var sureAction: CSPickerView.PickerViewManager.MultipleDoneAction? + @objc public var singleSureAction: CSPickerView.PickerViewManager.SingleDoneAction? + @objc override dynamic public func layoutSubviews() + @objc deinit +} +extension SelectPickerView { + @objc dynamic public class func showView(title: Swift.String, data: [Swift.String], defaultSelectedIndexs: [Swift.Int]?, cancelAction: @escaping CSPickerView.PickerViewManager.BtnAction, sureAction: @escaping CSPickerView.PickerViewManager.MultipleDoneAction) + @objc dynamic public class func getView(title: Swift.String, data: [Swift.String], defaultSelectedIndexs: [Swift.Int]?) -> CSPickerView.SelectPickerView? + public class func showSingleView(title: Swift.String, data: [Swift.String], defaultSelectedIndex: Swift.Int?, cancelAction: @escaping CSPickerView.PickerViewManager.BtnAction, sureAction: @escaping CSPickerView.PickerViewManager.SingleDoneAction) + public class func getSingleView(title: Swift.String, data: [Swift.String], defaultSelectedIndex: Swift.Int?) -> CSPickerView.SelectPickerView? + @objc dynamic public func show(completion: ((Swift.Bool) -> Swift.Void)? = nil) + @objc dynamic public func dismiss(completion: ((Swift.Bool) -> Swift.Void)? = nil) +} +extension SelectPickerView : UIKit.UITableViewDataSource { + @objc dynamic public func tableView(_ tableView: UIKit.UITableView, numberOfRowsInSection section: Swift.Int) -> Swift.Int + @objc dynamic public func tableView(_ tableView: UIKit.UITableView, cellForRowAt indexPath: Foundation.IndexPath) -> UIKit.UITableViewCell +} +extension SelectPickerView : UIKit.UITableViewDelegate { + @objc dynamic public func tableView(_ tableView: UIKit.UITableView, didSelectRowAt indexPath: Foundation.IndexPath) + @objc dynamic public func tableView(_ tableView: UIKit.UITableView, willDisplay cell: UIKit.UITableViewCell, forRowAt indexPath: Foundation.IndexPath) +} +@objc @_inheritsConvenienceInitializers @objcMembers open class ToolBarView : UIKit.UIView { + @objc open var title: Swift.String { + @objc get + @objc set + } + @objc open var sureAction: CSPickerView.PickerViewManager.BtnAction? + @objc open var cancelAction: CSPickerView.PickerViewManager.BtnAction? + @objc override dynamic public init(frame: CoreGraphics.CGRect) + @available(*, unavailable) + @objc required dynamic public init?(coder aDecoder: Foundation.NSCoder) + @objc override dynamic open func layoutSubviews() + @objc deinit +} +@objc public enum DurationDatePickerViewDateType : Swift.Int { + case YMD + case YMDHM + public var formatStr: Swift.String { + get + } + public typealias RawValue = Swift.Int + public init?(rawValue: Swift.Int) + public var rawValue: Swift.Int { + get + } +} +@objc @_inheritsConvenienceInitializers @_hasMissingDesignatedInitializers @objcMembers open class DurationDatePickerView : UIKit.UIView { + public typealias SureBlock = (Swift.String, Swift.String) -> Swift.Void + public typealias CancelBlock = () -> Swift.Void + @objc public var canGreatNow: Swift.Bool + @objc public var canLessNow: Swift.Bool + @objc public var sureBlock: CSPickerView.DurationDatePickerView.SureBlock? + @objc public var cancelBlock: CSPickerView.DurationDatePickerView.CancelBlock? + @objc public var titleLabel: UIKit.UILabel { + @objc get + @objc set + } + @objc public var startBtn: UIKit.UIButton { + @objc get + @objc set + } + @objc public var endBtn: UIKit.UIButton { + @objc get + @objc set + } + @objc public var cancelBtn: UIKit.UIButton { + @objc get + @objc set + } + @objc public var confirmBtn: UIKit.UIButton { + @objc get + @objc set + } + @available(*, unavailable) + @objc required dynamic public init?(coder aDecoder: Foundation.NSCoder) + @objc deinit +} +extension DurationDatePickerView { + @objc dynamic public class func getPopupView(startDate: Foundation.Date, endDate: Foundation.Date, dateType: CSPickerView.DurationDatePickerViewDateType = .YMD) -> CSPickerView.DurationDatePickerView + @objc dynamic public func show(completion: ((Swift.Bool) -> Swift.Void)? = nil) + @objc dynamic public func dismiss(completion: ((Swift.Bool) -> Swift.Void)? = nil) +} +@objc @_inheritsConvenienceInitializers @_hasMissingDesignatedInitializers @objcMembers public class PickerViewConfig : ObjectiveC.NSObject { + @objc public static let shared: CSPickerView.PickerViewConfig + @objc public var mainBackgroundColor: UIKit.UIColor + @objc public var maskColor: UIKit.UIColor + @objc public var mainTextColor: UIKit.UIColor + @objc public var leftButtonColor: UIKit.UIColor + @objc public var rightButtonColor: UIKit.UIColor + @objc public var centerLabelColor: UIKit.UIColor + @objc public var lineColor: UIKit.UIColor + @objc public var languageCode: Swift.String? + @objc public var animateDuration: Swift.Double + @objc deinit +} +@objc @_inheritsConvenienceInitializers @_hasMissingDesignatedInitializers @objcMembers public class PickerViewManager : UIKit.UIView { + public typealias BtnAction = () -> Swift.Void + public typealias SingleDoneAction = (Swift.Int, Swift.String) -> Swift.Void + public typealias MultipleDoneAction = ([Swift.Int], [Swift.String]) -> Swift.Void + public typealias DateDoneAction = (Foundation.Date) -> Swift.Void + public typealias MultipleAssociatedDataType = [[[Swift.String : [Swift.String]?]]] + @available(*, unavailable) + @objc required dynamic public init?(coder aDecoder: Foundation.NSCoder) + @objc deinit +} +extension PickerViewManager { + @objc dynamic public func dimiss(completion: ((Swift.Bool) -> Swift.Void)? = nil) +} +extension PickerViewManager { + public class func showSingleColPicker(_ toolBarTitle: Swift.String, data: [Swift.String], defaultSelectedIndex: Swift.Int?, cancelAction: CSPickerView.PickerViewManager.BtnAction?, sureAction: CSPickerView.PickerViewManager.SingleDoneAction?) + @objc dynamic public class func showMultipleColsPicker(_ toolBarTitle: Swift.String, data: [[Swift.String]], defaultSelectedIndexs: [Swift.Int]?, cancelAction: CSPickerView.PickerViewManager.BtnAction?, sureAction: CSPickerView.PickerViewManager.MultipleDoneAction?) + public class func showMultipleAssociatedColsPicker(_ toolBarTitle: Swift.String, data: CSPickerView.PickerViewManager.MultipleAssociatedDataType, defaultSelectedValues: [Swift.String]?, cancelAction: CSPickerView.PickerViewManager.BtnAction?, sureAction: CSPickerView.PickerViewManager.MultipleDoneAction?) + @objc dynamic public class func showCitiesPicker(_ toolBarTitle: Swift.String, type: CSPickerView.CityPickStyle = .province, defaultSelectedValues: [Swift.String]?, cancelAction: CSPickerView.PickerViewManager.BtnAction?, sureAction: CSPickerView.PickerViewManager.MultipleDoneAction?) + @objc dynamic public class func showDatePicker(_ toolBarTitle: Swift.String, datePickerSetting: CSPickerView.DatePickerSetting = DatePickerSetting(), cancelAction: CSPickerView.PickerViewManager.BtnAction?, sureAction: CSPickerView.PickerViewManager.DateDoneAction?) +} +extension CSPickerView.PickerStyles : Swift.Equatable {} +extension CSPickerView.PickerStyles : Swift.Hashable {} +extension CSPickerView.PickerStyles : Swift.RawRepresentable {} +extension CSPickerView.CityPickStyle : Swift.Equatable {} +extension CSPickerView.CityPickStyle : Swift.Hashable {} +extension CSPickerView.CityPickStyle : Swift.RawRepresentable {} +extension CSPickerView.DurationDatePickerViewDateType : Swift.Equatable {} +extension CSPickerView.DurationDatePickerViewDateType : Swift.Hashable {} +extension CSPickerView.DurationDatePickerViewDateType : Swift.RawRepresentable {} diff --git a/CSPickerView/Frameworks/CSPickerView.framework/Modules/CSPickerView.swiftmodule/x86_64.swiftmodule b/CSPickerView/Frameworks/CSPickerView.framework/Modules/CSPickerView.swiftmodule/x86_64.swiftmodule new file mode 100644 index 0000000..641044e Binary files /dev/null and b/CSPickerView/Frameworks/CSPickerView.framework/Modules/CSPickerView.swiftmodule/x86_64.swiftmodule differ diff --git a/CSPickerView/Frameworks/CSPickerView.framework/Modules/module.modulemap b/CSPickerView/Frameworks/CSPickerView.framework/Modules/module.modulemap new file mode 100644 index 0000000..f02f8b7 --- /dev/null +++ b/CSPickerView/Frameworks/CSPickerView.framework/Modules/module.modulemap @@ -0,0 +1,4 @@ +framework module CSPickerView { + header "CSPickerView-Swift.h" + requires objc +} diff --git a/Example/CSPickerView.xcodeproj/project.pbxproj b/Example/CSPickerView.xcodeproj/project.pbxproj index fe1921c..0206686 100644 --- a/Example/CSPickerView.xcodeproj/project.pbxproj +++ b/Example/CSPickerView.xcodeproj/project.pbxproj @@ -7,33 +7,32 @@ objects = { /* Begin PBXBuildFile section */ - 0571BEB80905B74B92910093 /* Pods_CSPickerView_Example.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = C3299CA39D46408501ED11F8 /* Pods_CSPickerView_Example.framework */; }; - 05D55C9908731AFD3DB20014 /* Pods_CSPickerView_Tests.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 00D817E373D67E9FCA285C1F /* Pods_CSPickerView_Tests.framework */; }; 607FACD61AFB9204008FA782 /* AppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 607FACD51AFB9204008FA782 /* AppDelegate.swift */; }; 607FACD81AFB9204008FA782 /* ViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 607FACD71AFB9204008FA782 /* ViewController.swift */; }; 607FACDB1AFB9204008FA782 /* Main.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 607FACD91AFB9204008FA782 /* Main.storyboard */; }; 607FACDD1AFB9204008FA782 /* Images.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 607FACDC1AFB9204008FA782 /* Images.xcassets */; }; 607FACE01AFB9204008FA782 /* LaunchScreen.xib in Resources */ = {isa = PBXBuildFile; fileRef = 607FACDE1AFB9204008FA782 /* LaunchScreen.xib */; }; - 607FACEC1AFB9204008FA782 /* Tests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 607FACEB1AFB9204008FA782 /* Tests.swift */; }; + 99F33E92936D5A818803F7ED /* Pods_CSPickerView_Example.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = A80B8B63EEF576B279DA4C11 /* Pods_CSPickerView_Example.framework */; }; /* End PBXBuildFile section */ -/* Begin PBXContainerItemProxy section */ - 607FACE61AFB9204008FA782 /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = 607FACC81AFB9204008FA782 /* Project object */; - proxyType = 1; - remoteGlobalIDString = 607FACCF1AFB9204008FA782; - remoteInfo = CSPickerView; +/* Begin PBXCopyFilesBuildPhase section */ + 2DB72D1B266E724C00D29FB5 /* Embed Frameworks */ = { + isa = PBXCopyFilesBuildPhase; + buildActionMask = 2147483647; + dstPath = ""; + dstSubfolderSpec = 10; + files = ( + ); + name = "Embed Frameworks"; + runOnlyForDeploymentPostprocessing = 0; }; -/* End PBXContainerItemProxy section */ +/* End PBXCopyFilesBuildPhase section */ /* Begin PBXFileReference section */ - 00D817E373D67E9FCA285C1F /* Pods_CSPickerView_Tests.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_CSPickerView_Tests.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - 1384A6E423FF16D22FD5E0CC /* CSPickerView.podspec */ = {isa = PBXFileReference; includeInIndex = 1; name = CSPickerView.podspec; path = ../CSPickerView.podspec; sourceTree = ""; }; - 1FD219A6D7CE5F2C3F68897F /* README.md */ = {isa = PBXFileReference; includeInIndex = 1; name = README.md; path = ../README.md; sourceTree = ""; }; - 24222D7F6F8559B38F785360 /* LICENSE */ = {isa = PBXFileReference; includeInIndex = 1; name = LICENSE; path = ../LICENSE; sourceTree = ""; }; + 1384A6E423FF16D22FD5E0CC /* CSPickerView.podspec */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text; name = CSPickerView.podspec; path = ../CSPickerView.podspec; sourceTree = ""; xcLanguageSpecificationIdentifier = xcode.lang.ruby; }; + 1FD219A6D7CE5F2C3F68897F /* README.md */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = net.daringfireball.markdown; name = README.md; path = ../README.md; sourceTree = ""; }; + 24222D7F6F8559B38F785360 /* LICENSE */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text; name = LICENSE; path = ../LICENSE; sourceTree = ""; }; 4A8C4A39AF85A874E263718D /* Pods-CSPickerView_Example.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-CSPickerView_Example.debug.xcconfig"; path = "Target Support Files/Pods-CSPickerView_Example/Pods-CSPickerView_Example.debug.xcconfig"; sourceTree = ""; }; - 5B012543C1BB7352D0CEC933 /* Pods-CSPickerView_Tests.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-CSPickerView_Tests.release.xcconfig"; path = "Target Support Files/Pods-CSPickerView_Tests/Pods-CSPickerView_Tests.release.xcconfig"; sourceTree = ""; }; 607FACD01AFB9204008FA782 /* CSPickerView_Example.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = CSPickerView_Example.app; sourceTree = BUILT_PRODUCTS_DIR; }; 607FACD41AFB9204008FA782 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; 607FACD51AFB9204008FA782 /* AppDelegate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppDelegate.swift; sourceTree = ""; }; @@ -41,12 +40,8 @@ 607FACDA1AFB9204008FA782 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/Main.storyboard; sourceTree = ""; }; 607FACDC1AFB9204008FA782 /* Images.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Images.xcassets; sourceTree = ""; }; 607FACDF1AFB9204008FA782 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = Base; path = Base.lproj/LaunchScreen.xib; sourceTree = ""; }; - 607FACE51AFB9204008FA782 /* CSPickerView_Tests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = CSPickerView_Tests.xctest; sourceTree = BUILT_PRODUCTS_DIR; }; - 607FACEA1AFB9204008FA782 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; - 607FACEB1AFB9204008FA782 /* Tests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Tests.swift; sourceTree = ""; }; - 77A31399FB71748FC15FA399 /* Pods-CSPickerView_Tests.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-CSPickerView_Tests.debug.xcconfig"; path = "Target Support Files/Pods-CSPickerView_Tests/Pods-CSPickerView_Tests.debug.xcconfig"; sourceTree = ""; }; A6E79BE998D4814600620EC4 /* Pods-CSPickerView_Example.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-CSPickerView_Example.release.xcconfig"; path = "Target Support Files/Pods-CSPickerView_Example/Pods-CSPickerView_Example.release.xcconfig"; sourceTree = ""; }; - C3299CA39D46408501ED11F8 /* Pods_CSPickerView_Example.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_CSPickerView_Example.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + A80B8B63EEF576B279DA4C11 /* Pods_CSPickerView_Example.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_CSPickerView_Example.framework; sourceTree = BUILT_PRODUCTS_DIR; }; /* End PBXFileReference section */ /* Begin PBXFrameworksBuildPhase section */ @@ -54,15 +49,7 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - 0571BEB80905B74B92910093 /* Pods_CSPickerView_Example.framework in Frameworks */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - 607FACE21AFB9204008FA782 /* Frameworks */ = { - isa = PBXFrameworksBuildPhase; - buildActionMask = 2147483647; - files = ( - 05D55C9908731AFD3DB20014 /* Pods_CSPickerView_Tests.framework in Frameworks */, + 99F33E92936D5A818803F7ED /* Pods_CSPickerView_Example.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -72,8 +59,7 @@ 2AC3344879C22BA28EC4B159 /* Frameworks */ = { isa = PBXGroup; children = ( - C3299CA39D46408501ED11F8 /* Pods_CSPickerView_Example.framework */, - 00D817E373D67E9FCA285C1F /* Pods_CSPickerView_Tests.framework */, + A80B8B63EEF576B279DA4C11 /* Pods_CSPickerView_Example.framework */, ); name = Frameworks; sourceTree = ""; @@ -83,7 +69,6 @@ children = ( 607FACF51AFB993E008FA782 /* Podspec Metadata */, 607FACD21AFB9204008FA782 /* Example for CSPickerView */, - 607FACE81AFB9204008FA782 /* Tests */, 607FACD11AFB9204008FA782 /* Products */, B8FB31822E92D503437EB73E /* Pods */, 2AC3344879C22BA28EC4B159 /* Frameworks */, @@ -94,7 +79,6 @@ isa = PBXGroup; children = ( 607FACD01AFB9204008FA782 /* CSPickerView_Example.app */, - 607FACE51AFB9204008FA782 /* CSPickerView_Tests.xctest */, ); name = Products; sourceTree = ""; @@ -121,23 +105,6 @@ name = "Supporting Files"; sourceTree = ""; }; - 607FACE81AFB9204008FA782 /* Tests */ = { - isa = PBXGroup; - children = ( - 607FACEB1AFB9204008FA782 /* Tests.swift */, - 607FACE91AFB9204008FA782 /* Supporting Files */, - ); - path = Tests; - sourceTree = ""; - }; - 607FACE91AFB9204008FA782 /* Supporting Files */ = { - isa = PBXGroup; - children = ( - 607FACEA1AFB9204008FA782 /* Info.plist */, - ); - name = "Supporting Files"; - sourceTree = ""; - }; 607FACF51AFB993E008FA782 /* Podspec Metadata */ = { isa = PBXGroup; children = ( @@ -153,10 +120,7 @@ children = ( 4A8C4A39AF85A874E263718D /* Pods-CSPickerView_Example.debug.xcconfig */, A6E79BE998D4814600620EC4 /* Pods-CSPickerView_Example.release.xcconfig */, - 77A31399FB71748FC15FA399 /* Pods-CSPickerView_Tests.debug.xcconfig */, - 5B012543C1BB7352D0CEC933 /* Pods-CSPickerView_Tests.release.xcconfig */, ); - name = Pods; path = Pods; sourceTree = ""; }; @@ -172,6 +136,8 @@ 607FACCD1AFB9204008FA782 /* Frameworks */, 607FACCE1AFB9204008FA782 /* Resources */, 71A92FB01ADE5F1E2EDBF26C /* [CP] Embed Pods Frameworks */, + 2DB72D1B266E724C00D29FB5 /* Embed Frameworks */, + 7607EB58F5EF4D559053E092 /* [CP] Copy Pods Resources */, ); buildRules = ( ); @@ -182,25 +148,6 @@ productReference = 607FACD01AFB9204008FA782 /* CSPickerView_Example.app */; productType = "com.apple.product-type.application"; }; - 607FACE41AFB9204008FA782 /* CSPickerView_Tests */ = { - isa = PBXNativeTarget; - buildConfigurationList = 607FACF21AFB9204008FA782 /* Build configuration list for PBXNativeTarget "CSPickerView_Tests" */; - buildPhases = ( - D2DCA7DB1462D7F13EF65D10 /* [CP] Check Pods Manifest.lock */, - 607FACE11AFB9204008FA782 /* Sources */, - 607FACE21AFB9204008FA782 /* Frameworks */, - 607FACE31AFB9204008FA782 /* Resources */, - ); - buildRules = ( - ); - dependencies = ( - 607FACE71AFB9204008FA782 /* PBXTargetDependency */, - ); - name = CSPickerView_Tests; - productName = Tests; - productReference = 607FACE51AFB9204008FA782 /* CSPickerView_Tests.xctest */; - productType = "com.apple.product-type.bundle.unit-test"; - }; /* End PBXNativeTarget section */ /* Begin PBXProject section */ @@ -213,13 +160,9 @@ TargetAttributes = { 607FACCF1AFB9204008FA782 = { CreatedOnToolsVersion = 6.3.1; + DevelopmentTeam = 6C67KJ54CD; LastSwiftMigration = 0900; }; - 607FACE41AFB9204008FA782 = { - CreatedOnToolsVersion = 6.3.1; - LastSwiftMigration = 0900; - TestTargetID = 607FACCF1AFB9204008FA782; - }; }; }; buildConfigurationList = 607FACCB1AFB9204008FA782 /* Build configuration list for PBXProject "CSPickerView" */; @@ -227,8 +170,10 @@ developmentRegion = English; hasScannedForEncodings = 0; knownRegions = ( + English, en, Base, + "zh-Hans", ); mainGroup = 607FACC71AFB9204008FA782; productRefGroup = 607FACD11AFB9204008FA782 /* Products */; @@ -236,7 +181,6 @@ projectRoot = ""; targets = ( 607FACCF1AFB9204008FA782 /* CSPickerView_Example */, - 607FACE41AFB9204008FA782 /* CSPickerView_Tests */, ); }; /* End PBXProject section */ @@ -252,13 +196,6 @@ ); runOnlyForDeploymentPostprocessing = 0; }; - 607FACE31AFB9204008FA782 /* Resources */ = { - isa = PBXResourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - runOnlyForDeploymentPostprocessing = 0; - }; /* End PBXResourcesBuildPhase section */ /* Begin PBXShellScriptBuildPhase section */ @@ -269,40 +206,38 @@ ); inputPaths = ( "${PODS_ROOT}/Target Support Files/Pods-CSPickerView_Example/Pods-CSPickerView_Example-frameworks.sh", - "${BUILT_PRODUCTS_DIR}/CSPickerView/CSPickerView.framework", + "${BUILT_PRODUCTS_DIR}/LookinServer/LookinServer.framework", + "${BUILT_PRODUCTS_DIR}/SnapKit/SnapKit.framework", ); name = "[CP] Embed Pods Frameworks"; outputPaths = ( - "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/CSPickerView.framework", + "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/LookinServer.framework", + "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/SnapKit.framework", ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-CSPickerView_Example/Pods-CSPickerView_Example-frameworks.sh\"\n"; showEnvVarsInLog = 0; }; - BCA3F7D177B70771E7A5E7C0 /* [CP] Check Pods Manifest.lock */ = { + 7607EB58F5EF4D559053E092 /* [CP] Copy Pods Resources */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; files = ( ); - inputFileListPaths = ( - ); inputPaths = ( - "${PODS_PODFILE_DIR_PATH}/Podfile.lock", - "${PODS_ROOT}/Manifest.lock", - ); - name = "[CP] Check Pods Manifest.lock"; - outputFileListPaths = ( + "${PODS_ROOT}/Target Support Files/Pods-CSPickerView_Example/Pods-CSPickerView_Example-resources.sh", + "${PODS_ROOT}/../../CSPickerView/Frameworks/CSPickerView.bundle", ); + name = "[CP] Copy Pods Resources"; outputPaths = ( - "$(DERIVED_FILE_DIR)/Pods-CSPickerView_Example-checkManifestLockResult.txt", + "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/CSPickerView.bundle", ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; - shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n"; + shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-CSPickerView_Example/Pods-CSPickerView_Example-resources.sh\"\n"; showEnvVarsInLog = 0; }; - D2DCA7DB1462D7F13EF65D10 /* [CP] Check Pods Manifest.lock */ = { + BCA3F7D177B70771E7A5E7C0 /* [CP] Check Pods Manifest.lock */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; files = ( @@ -317,7 +252,7 @@ outputFileListPaths = ( ); outputPaths = ( - "$(DERIVED_FILE_DIR)/Pods-CSPickerView_Tests-checkManifestLockResult.txt", + "$(DERIVED_FILE_DIR)/Pods-CSPickerView_Example-checkManifestLockResult.txt", ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; @@ -336,24 +271,8 @@ ); runOnlyForDeploymentPostprocessing = 0; }; - 607FACE11AFB9204008FA782 /* Sources */ = { - isa = PBXSourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - 607FACEC1AFB9204008FA782 /* Tests.swift in Sources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; /* End PBXSourcesBuildPhase section */ -/* Begin PBXTargetDependency section */ - 607FACE71AFB9204008FA782 /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - target = 607FACCF1AFB9204008FA782 /* CSPickerView_Example */; - targetProxy = 607FACE61AFB9204008FA782 /* PBXContainerItemProxy */; - }; -/* End PBXTargetDependency section */ - /* Begin PBXVariantGroup section */ 607FACD91AFB9204008FA782 /* Main.storyboard */ = { isa = PBXVariantGroup; @@ -424,6 +343,7 @@ ONLY_ACTIVE_ARCH = YES; SDKROOT = iphoneos; SWIFT_OPTIMIZATION_LEVEL = "-Onone"; + SWIFT_VERSION = 5.0; }; name = Debug; }; @@ -469,6 +389,7 @@ MTL_ENABLE_DEBUG_INFO = NO; SDKROOT = iphoneos; SWIFT_OPTIMIZATION_LEVEL = "-Owholemodule"; + SWIFT_VERSION = 5.0; VALIDATE_PRODUCT = YES; }; name = Release; @@ -477,14 +398,19 @@ isa = XCBuildConfiguration; baseConfigurationReference = 4A8C4A39AF85A874E263718D /* Pods-CSPickerView_Example.debug.xcconfig */; buildSettings = { + ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = "$(inherited)"; ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + CURRENT_PROJECT_VERSION = 1; + DEVELOPMENT_TEAM = 6C67KJ54CD; INFOPLIST_FILE = CSPickerView/Info.plist; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; + IPHONEOS_DEPLOYMENT_TARGET = 9.0; + LD_RUNPATH_SEARCH_PATHS = "$(inherited)"; MODULE_NAME = ExampleApp; - PRODUCT_BUNDLE_IDENTIFIER = "org.cocoapods.demo.$(PRODUCT_NAME:rfc1034identifier)"; + PRODUCT_BUNDLE_IDENTIFIER = "com.coderstar.CSPickerView-Example"; PRODUCT_NAME = "$(TARGET_NAME)"; SWIFT_SWIFT3_OBJC_INFERENCE = Default; - SWIFT_VERSION = 4.0; + SWIFT_VERSION = 5.0; + TARGETED_DEVICE_FAMILY = "1,2"; }; name = Debug; }; @@ -492,54 +418,19 @@ isa = XCBuildConfiguration; baseConfigurationReference = A6E79BE998D4814600620EC4 /* Pods-CSPickerView_Example.release.xcconfig */; buildSettings = { + ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = "$(inherited)"; ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + CURRENT_PROJECT_VERSION = 1; + DEVELOPMENT_TEAM = 6C67KJ54CD; INFOPLIST_FILE = CSPickerView/Info.plist; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; + IPHONEOS_DEPLOYMENT_TARGET = 9.0; + LD_RUNPATH_SEARCH_PATHS = "$(inherited)"; MODULE_NAME = ExampleApp; - PRODUCT_BUNDLE_IDENTIFIER = "org.cocoapods.demo.$(PRODUCT_NAME:rfc1034identifier)"; + PRODUCT_BUNDLE_IDENTIFIER = "com.coderstar.CSPickerView-Example"; PRODUCT_NAME = "$(TARGET_NAME)"; SWIFT_SWIFT3_OBJC_INFERENCE = Default; - SWIFT_VERSION = 4.0; - }; - name = Release; - }; - 607FACF31AFB9204008FA782 /* Debug */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = 77A31399FB71748FC15FA399 /* Pods-CSPickerView_Tests.debug.xcconfig */; - buildSettings = { - FRAMEWORK_SEARCH_PATHS = ( - "$(PLATFORM_DIR)/Developer/Library/Frameworks", - "$(inherited)", - ); - GCC_PREPROCESSOR_DEFINITIONS = ( - "DEBUG=1", - "$(inherited)", - ); - INFOPLIST_FILE = Tests/Info.plist; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; - PRODUCT_BUNDLE_IDENTIFIER = "org.cocoapods.$(PRODUCT_NAME:rfc1034identifier)"; - PRODUCT_NAME = "$(TARGET_NAME)"; - SWIFT_SWIFT3_OBJC_INFERENCE = Default; - SWIFT_VERSION = 4.0; - TEST_HOST = "$(BUILT_PRODUCTS_DIR)/CSPickerView_Example.app/CSPickerView_Example"; - }; - name = Debug; - }; - 607FACF41AFB9204008FA782 /* Release */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = 5B012543C1BB7352D0CEC933 /* Pods-CSPickerView_Tests.release.xcconfig */; - buildSettings = { - FRAMEWORK_SEARCH_PATHS = ( - "$(PLATFORM_DIR)/Developer/Library/Frameworks", - "$(inherited)", - ); - INFOPLIST_FILE = Tests/Info.plist; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; - PRODUCT_BUNDLE_IDENTIFIER = "org.cocoapods.$(PRODUCT_NAME:rfc1034identifier)"; - PRODUCT_NAME = "$(TARGET_NAME)"; - SWIFT_SWIFT3_OBJC_INFERENCE = Default; - SWIFT_VERSION = 4.0; - TEST_HOST = "$(BUILT_PRODUCTS_DIR)/CSPickerView_Example.app/CSPickerView_Example"; + SWIFT_VERSION = 5.0; + TARGETED_DEVICE_FAMILY = "1,2"; }; name = Release; }; @@ -564,15 +455,6 @@ defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; - 607FACF21AFB9204008FA782 /* Build configuration list for PBXNativeTarget "CSPickerView_Tests" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - 607FACF31AFB9204008FA782 /* Debug */, - 607FACF41AFB9204008FA782 /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; /* End XCConfigurationList section */ }; rootObject = 607FACC81AFB9204008FA782 /* Project object */; diff --git a/Example/CSPickerView.xcodeproj/xcshareddata/xcschemes/CSPickerView-Example.xcscheme b/Example/CSPickerView.xcodeproj/xcshareddata/xcschemes/CSPickerView_Example.xcscheme similarity index 64% rename from Example/CSPickerView.xcodeproj/xcshareddata/xcschemes/CSPickerView-Example.xcscheme rename to Example/CSPickerView.xcodeproj/xcshareddata/xcschemes/CSPickerView_Example.xcscheme index 042a0a4..7ee204b 100644 --- a/Example/CSPickerView.xcodeproj/xcshareddata/xcschemes/CSPickerView-Example.xcscheme +++ b/Example/CSPickerView.xcodeproj/xcshareddata/xcschemes/CSPickerView_Example.xcscheme @@ -1,6 +1,6 @@ - - - - - - - - - - - - - - - - + + + + + + + + diff --git a/Example/CSPickerView.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist b/Example/CSPickerView.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist new file mode 100644 index 0000000..18d9810 --- /dev/null +++ b/Example/CSPickerView.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist @@ -0,0 +1,8 @@ + + + + + IDEDidComputeMac32BitWarning + + + diff --git a/Example/CSPickerView/AppDelegate.swift b/Example/CSPickerView/AppDelegate.swift index 944b7af..3feaf59 100644 --- a/Example/CSPickerView/AppDelegate.swift +++ b/Example/CSPickerView/AppDelegate.swift @@ -14,7 +14,7 @@ class AppDelegate: UIResponder, UIApplicationDelegate { var window: UIWindow? - func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool { + func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool { // Override point for customization after application launch. return true } diff --git a/Example/CSPickerView/Base.lproj/LaunchScreen.xib b/Example/CSPickerView/Base.lproj/LaunchScreen.xib index 00b69ed..7174b72 100644 --- a/Example/CSPickerView/Base.lproj/LaunchScreen.xib +++ b/Example/CSPickerView/Base.lproj/LaunchScreen.xib @@ -1,12 +1,9 @@ - - - - + + - - + @@ -16,16 +13,16 @@ - @@ -43,4 +40,9 @@ + + + + + diff --git a/Example/CSPickerView/Base.lproj/Main.storyboard b/Example/CSPickerView/Base.lproj/Main.storyboard index 3257a0c..8788cb1 100644 --- a/Example/CSPickerView/Base.lproj/Main.storyboard +++ b/Example/CSPickerView/Base.lproj/Main.storyboard @@ -1,18 +1,16 @@ - - - - + + - + - + - + @@ -22,9 +20,29 @@ + + + + + + + + + + + + + + + + + + + + diff --git a/Example/CSPickerView/Info.plist b/Example/CSPickerView/Info.plist index eb18faa..6b6c83c 100644 --- a/Example/CSPickerView/Info.plist +++ b/Example/CSPickerView/Info.plist @@ -2,8 +2,6 @@ - CFBundleDevelopmentRegion - en CFBundleExecutable $(EXECUTABLE_NAME) CFBundleIdentifier @@ -13,27 +11,14 @@ CFBundleName $(PRODUCT_NAME) CFBundlePackageType - APPL + $(PRODUCT_BUNDLE_PACKAGE_TYPE) CFBundleShortVersionString 1.0 - CFBundleSignature - ???? CFBundleVersion - 1 - LSRequiresIPhoneOS - + $(CURRENT_PROJECT_VERSION) UILaunchStoryboardName LaunchScreen UIMainStoryboardFile Main - UIRequiredDeviceCapabilities - - armv7 - - UISupportedInterfaceOrientations - - UIInterfaceOrientationPortrait - UIInterfaceOrientationLandscapeLeft - diff --git a/Example/CSPickerView/ViewController.swift b/Example/CSPickerView/ViewController.swift index 363d8b4..0326b08 100644 --- a/Example/CSPickerView/ViewController.swift +++ b/Example/CSPickerView/ViewController.swift @@ -6,19 +6,185 @@ // Copyright (c) 2021 Coder-Star. All rights reserved. // +import CSPickerView +import SnapKit import UIKit class ViewController: UIViewController { + enum dataType: String { + case startAndEndDate = "起止日期" + case startAndEndTime = "起止时间" + case date = "日期" + case time = "时间" + case dateAndTime = "时间和日期" + case single = "单列" + case multiple = "多列不关联" + case multipleAssociated = "多列关联" + case city = "省市区" + case singleSelect = "单选" + case multipleSelect = "多选" + + var formateStr: String? { + switch self { + case .startAndEndDate: + return nil + case .startAndEndTime: + return nil + case .date: + return "yyyy-MM-dd" + case .time: + return "HH:mm" + case .dateAndTime: + return "yyyy-MM-dd HH:mm" + case .single: + return nil + case .multiple: + return nil + case .multipleAssociated: + return nil + case .city: + return nil + case .singleSelect: + return nil + case .multipleSelect: + return nil + } + } + } + + private let dataArr: [dataType] = [ + .startAndEndDate, + .startAndEndTime, + .date, + .time, + .dateAndTime, + .single, + .multiple, + .multipleAssociated, + .city, + .singleSelect, + .multipleSelect, + ] + + /// 单列 + private let singleData = ["swift", "ObjecTive-C(主要是用来测试数据很长时候选择的样式哦)", "C", "C++", "java", "php", "python", "ruby", "js"] + + /// 多列不关联 + private let multipleData = [ + ["1天", "2天", "3天", "4天", "5天", "6天", "7天"], + ["1小时", "2小时", "3小时", "4小时", "5小时"], + ["1分钟", "2分钟", "3分钟", "4分钟", "5分钟", "6分钟", "7分钟", "8分钟", "9分钟", "10分钟"], + ] + + /// 多列关联 + private let multipleAssociatedData: [[[String: [String]?]]] = [ + [["交通工具": ["陆地", "空中", "水上"]], // 字典 + ["食品": ["健康食品", "垃圾食品"]], + ["游戏": ["益智游戏", "角色游戏"]]], + [["陆地": ["公交车", "小轿车", "自行车"]], + ["空中": ["飞机"]], + ["水上": ["轮船"]], + ["健康食品": ["蔬菜", "水果"]], + ["垃圾食品": ["辣条", "不健康小吃"]], + ["益智游戏": ["消消乐", "消灭星星"]], + ["角色游戏": ["lol", "cf"]]], + ] + + private lazy var tableView: UITableView = { + let tableView = UITableView() + tableView.tableFooterView = UIView() + tableView.dataSource = self + tableView.separatorInset = UIEdgeInsets(top: 0, left: 0, bottom: 0, right: 0) + tableView.delegate = self + tableView.rowHeight = 44 + return tableView + }() override func viewDidLoad() { super.viewDidLoad() - // Do any additional setup after loading the view, typically from a nib. + title = "CSPickerView" + view.addSubview(tableView) + tableView.snp.makeConstraints { make in + make.edges.equalToSuperview() + } } +} - override func didReceiveMemoryWarning() { - super.didReceiveMemoryWarning() - // Dispose of any resources that can be recreated. +extension ViewController: UITableViewDataSource { + func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int { + return dataArr.count } + func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell { + let type = dataArr[indexPath.row] + var tableCell = tableView.dequeueReusableCell(withIdentifier: "tableCell") + if tableCell == nil { + tableCell = UITableViewCell(style: .default, reuseIdentifier: "tableCell") + } + tableCell?.textLabel?.text = type.rawValue + return tableCell! + } } +extension ViewController: UITableViewDelegate { + func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) { + tableView.deselectRow(at: indexPath, animated: true) + let type = dataArr[indexPath.row] + switch type { + case .startAndEndDate, .startAndEndTime: + let start = Date() + let end = Date(timeInterval: 1 * 24 * 60 * 60, since: start) + let popupView = DurationDatePickerView.getPopupView(startDate: start, endDate: end, dateType: type == .startAndEndDate ? .YMD : .YMDHM) + popupView.sureBlock = { [weak self] start, end in + self?.showAlert("起始时间:\(start)\n结束时间:\(end)") + } + popupView.show() + case .date, .time, .dateAndTime: + var dateStyle = DatePickerSetting() + if type == .time { + dateStyle.dateMode = .time + } else if type == .dateAndTime { + dateStyle.dateMode = .dateAndTime + } + + PickerViewManager.showDatePicker("日期选择", datePickerSetting: dateStyle, + cancelAction: ({}), + sureAction: ({ selectedDate in + self.showAlert(PickerViewUtils.formatDate(date: selectedDate, formatStr: type.formateStr!)) + })) + case .single: + PickerViewManager.showSingleColPicker("单列", data: singleData, defaultSelectedIndex: 2, cancelAction: {}, sureAction: { index, value in + self.showAlert("索引:\(index)\n值:\(value)") + }) + case .multiple: + PickerViewManager.showMultipleColsPicker("多列不关联", data: multipleData, defaultSelectedIndexs: [0, 1, 1], cancelAction: {}, sureAction: { index, value in + self.showAlert("索引:\(index)\n值:\(value)") + }) + case .multipleAssociated: + PickerViewManager.showMultipleAssociatedColsPicker("多列关联", data: multipleAssociatedData, defaultSelectedValues: ["食品", "垃圾食品", "不健康小吃"], cancelAction: {}, sureAction: { index, value in + self.showAlert("索引:\(index)\n值:\(value)") + }) + case .city: + PickerViewManager.showCitiesPicker("省市区选择", type: .area, defaultSelectedValues: ["天津市", "天津市", "河东区"], cancelAction: {}, sureAction: { index, value in + self.showAlert("索引:\(index)\n值:\(value)") + }) + case .singleSelect: + SelectPickerView.showSingleView(title: "单项选择", data: singleData, defaultSelectedIndex: 1, cancelAction: {}, sureAction: { index, value in + self.showAlert("索引:\(index)\n值:\(value)") + }) + case .multipleSelect: + SelectPickerView.showView(title: "多项选择", data: singleData, defaultSelectedIndexs: [1], cancelAction: {}, sureAction: { index, value in + self.showAlert("索引:\(index)\n值:\(value)") + }) + } + } +} + +extension ViewController { + public func showAlert(_ message: String) { + let alertController = UIAlertController(title: "", message: message, preferredStyle: .alert) + let cancelAction = UIAlertAction(title: "关闭", style: .cancel) + alertController.addAction(cancelAction) + self.present(alertController, animated: true, completion: nil) + } +} diff --git a/Example/CSPickerView/zh-Hans.lproj/LaunchScreen.strings b/Example/CSPickerView/zh-Hans.lproj/LaunchScreen.strings new file mode 100644 index 0000000..3771fca --- /dev/null +++ b/Example/CSPickerView/zh-Hans.lproj/LaunchScreen.strings @@ -0,0 +1,6 @@ + +/* Class = "UILabel"; text = " Copyright (c) 2015 CocoaPods. All rights reserved."; ObjectID = "8ie-xW-0ye"; */ +"8ie-xW-0ye.text" = " Copyright (c) 2015 CocoaPods. All rights reserved."; + +/* Class = "UILabel"; text = "CSPickerView"; ObjectID = "kId-c2-rCX"; */ +"kId-c2-rCX.text" = "CSPickerView"; diff --git a/Example/CSPickerView/zh-Hans.lproj/Main.strings b/Example/CSPickerView/zh-Hans.lproj/Main.strings new file mode 100644 index 0000000..8b13789 --- /dev/null +++ b/Example/CSPickerView/zh-Hans.lproj/Main.strings @@ -0,0 +1 @@ + diff --git a/Example/CSPickerViewSDK/CSPickerViewSDK.xcodeproj/project.pbxproj b/Example/CSPickerViewSDK/CSPickerViewSDK.xcodeproj/project.pbxproj new file mode 100644 index 0000000..35c9406 --- /dev/null +++ b/Example/CSPickerViewSDK/CSPickerViewSDK.xcodeproj/project.pbxproj @@ -0,0 +1,380 @@ +// !$*UTF8*$! +{ + archiveVersion = 1; + classes = { + }; + objectVersion = 50; + objects = { + +/* Begin PBXBuildFile section */ + 2D6DCC6E2670E32500D76A4C /* CSPickerViewSDK.h in Headers */ = {isa = PBXBuildFile; fileRef = 2D6DCC6C2670E32500D76A4C /* CSPickerViewSDK.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 2D6DCC7D2670E35100D76A4C /* PickerViewUtils.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2D6DCC762670E35100D76A4C /* PickerViewUtils.swift */; }; + 2D6DCC7E2670E35100D76A4C /* PickerView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2D6DCC772670E35100D76A4C /* PickerView.swift */; }; + 2D6DCC7F2670E35100D76A4C /* PickerViewManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2D6DCC782670E35100D76A4C /* PickerViewManager.swift */; }; + 2D6DCC802670E35100D76A4C /* ToolBarView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2D6DCC792670E35100D76A4C /* ToolBarView.swift */; }; + 2D6DCC812670E35100D76A4C /* DurationDatePickerView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2D6DCC7A2670E35100D76A4C /* DurationDatePickerView.swift */; }; + 2D6DCC822670E35100D76A4C /* SelectPickerView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2D6DCC7B2670E35100D76A4C /* SelectPickerView.swift */; }; + 2D6DCC832670E35100D76A4C /* PickerViewConfig.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2D6DCC7C2670E35100D76A4C /* PickerViewConfig.swift */; }; +/* End PBXBuildFile section */ + +/* Begin PBXFileReference section */ + 2D6DCC692670E32500D76A4C /* CSPickerView.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = CSPickerView.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + 2D6DCC6C2670E32500D76A4C /* CSPickerViewSDK.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = CSPickerViewSDK.h; sourceTree = ""; }; + 2D6DCC6D2670E32500D76A4C /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; + 2D6DCC762670E35100D76A4C /* PickerViewUtils.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PickerViewUtils.swift; sourceTree = ""; }; + 2D6DCC772670E35100D76A4C /* PickerView.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PickerView.swift; sourceTree = ""; }; + 2D6DCC782670E35100D76A4C /* PickerViewManager.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PickerViewManager.swift; sourceTree = ""; }; + 2D6DCC792670E35100D76A4C /* ToolBarView.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ToolBarView.swift; sourceTree = ""; }; + 2D6DCC7A2670E35100D76A4C /* DurationDatePickerView.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = DurationDatePickerView.swift; sourceTree = ""; }; + 2D6DCC7B2670E35100D76A4C /* SelectPickerView.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SelectPickerView.swift; sourceTree = ""; }; + 2D6DCC7C2670E35100D76A4C /* PickerViewConfig.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PickerViewConfig.swift; sourceTree = ""; }; +/* End PBXFileReference section */ + +/* Begin PBXFrameworksBuildPhase section */ + 2D6DCC662670E32500D76A4C /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXFrameworksBuildPhase section */ + +/* Begin PBXGroup section */ + 2D6DCC5F2670E32500D76A4C = { + isa = PBXGroup; + children = ( + 2D6DCC6B2670E32500D76A4C /* CSPickerViewSDK */, + 2D6DCC6A2670E32500D76A4C /* Products */, + ); + sourceTree = ""; + }; + 2D6DCC6A2670E32500D76A4C /* Products */ = { + isa = PBXGroup; + children = ( + 2D6DCC692670E32500D76A4C /* CSPickerView.framework */, + ); + name = Products; + sourceTree = ""; + }; + 2D6DCC6B2670E32500D76A4C /* CSPickerViewSDK */ = { + isa = PBXGroup; + children = ( + 2D6DCC752670E35100D76A4C /* Classes */, + 2D6DCC6C2670E32500D76A4C /* CSPickerViewSDK.h */, + 2D6DCC6D2670E32500D76A4C /* Info.plist */, + ); + path = CSPickerViewSDK; + sourceTree = ""; + }; + 2D6DCC752670E35100D76A4C /* Classes */ = { + isa = PBXGroup; + children = ( + 2D6DCC762670E35100D76A4C /* PickerViewUtils.swift */, + 2D6DCC772670E35100D76A4C /* PickerView.swift */, + 2D6DCC782670E35100D76A4C /* PickerViewManager.swift */, + 2D6DCC792670E35100D76A4C /* ToolBarView.swift */, + 2D6DCC7A2670E35100D76A4C /* DurationDatePickerView.swift */, + 2D6DCC7B2670E35100D76A4C /* SelectPickerView.swift */, + 2D6DCC7C2670E35100D76A4C /* PickerViewConfig.swift */, + ); + name = Classes; + path = ../../../CSPickerView/Classes; + sourceTree = ""; + }; +/* End PBXGroup section */ + +/* Begin PBXHeadersBuildPhase section */ + 2D6DCC642670E32500D76A4C /* Headers */ = { + isa = PBXHeadersBuildPhase; + buildActionMask = 2147483647; + files = ( + 2D6DCC6E2670E32500D76A4C /* CSPickerViewSDK.h in Headers */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXHeadersBuildPhase section */ + +/* Begin PBXNativeTarget section */ + 2D6DCC682670E32500D76A4C /* CSPickerView */ = { + isa = PBXNativeTarget; + buildConfigurationList = 2D6DCC712670E32500D76A4C /* Build configuration list for PBXNativeTarget "CSPickerView" */; + buildPhases = ( + 2D6DCC642670E32500D76A4C /* Headers */, + 2D6DCC652670E32500D76A4C /* Sources */, + 2D6DCC662670E32500D76A4C /* Frameworks */, + 2D6DCC672670E32500D76A4C /* Resources */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = CSPickerView; + productName = CSPickerViewSDK; + productReference = 2D6DCC692670E32500D76A4C /* CSPickerView.framework */; + productType = "com.apple.product-type.framework"; + }; +/* End PBXNativeTarget section */ + +/* Begin PBXProject section */ + 2D6DCC602670E32500D76A4C /* Project object */ = { + isa = PBXProject; + attributes = { + LastUpgradeCheck = 1240; + TargetAttributes = { + 2D6DCC682670E32500D76A4C = { + CreatedOnToolsVersion = 12.4; + }; + }; + }; + buildConfigurationList = 2D6DCC632670E32500D76A4C /* Build configuration list for PBXProject "CSPickerViewSDK" */; + compatibilityVersion = "Xcode 9.3"; + developmentRegion = en; + hasScannedForEncodings = 0; + knownRegions = ( + en, + Base, + "zh-Hans", + ); + mainGroup = 2D6DCC5F2670E32500D76A4C; + productRefGroup = 2D6DCC6A2670E32500D76A4C /* Products */; + projectDirPath = ""; + projectRoot = ""; + targets = ( + 2D6DCC682670E32500D76A4C /* CSPickerView */, + ); + }; +/* End PBXProject section */ + +/* Begin PBXResourcesBuildPhase section */ + 2D6DCC672670E32500D76A4C /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXResourcesBuildPhase section */ + +/* Begin PBXSourcesBuildPhase section */ + 2D6DCC652670E32500D76A4C /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 2D6DCC7E2670E35100D76A4C /* PickerView.swift in Sources */, + 2D6DCC7D2670E35100D76A4C /* PickerViewUtils.swift in Sources */, + 2D6DCC822670E35100D76A4C /* SelectPickerView.swift in Sources */, + 2D6DCC802670E35100D76A4C /* ToolBarView.swift in Sources */, + 2D6DCC812670E35100D76A4C /* DurationDatePickerView.swift in Sources */, + 2D6DCC832670E35100D76A4C /* PickerViewConfig.swift in Sources */, + 2D6DCC7F2670E35100D76A4C /* PickerViewManager.swift in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXSourcesBuildPhase section */ + +/* Begin XCBuildConfiguration section */ + 2D6DCC6F2670E32500D76A4C /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ANALYZER_NONNULL = YES; + CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_ENABLE_OBJC_WEAK = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_COMMA = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_DOCUMENTATION_COMMENTS = YES; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_STRICT_PROTOTYPES = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + COPY_PHASE_STRIP = NO; + CURRENT_PROJECT_VERSION = 1; + DEBUG_INFORMATION_FORMAT = dwarf; + ENABLE_STRICT_OBJC_MSGSEND = YES; + ENABLE_TESTABILITY = YES; + GCC_C_LANGUAGE_STANDARD = gnu11; + GCC_DYNAMIC_NO_PIC = NO; + GCC_NO_COMMON_BLOCKS = YES; + GCC_OPTIMIZATION_LEVEL = 0; + GCC_PREPROCESSOR_DEFINITIONS = ( + "DEBUG=1", + "$(inherited)", + ); + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + IPHONEOS_DEPLOYMENT_TARGET = 14.4; + MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE; + MTL_FAST_MATH = YES; + ONLY_ACTIVE_ARCH = YES; + SDKROOT = iphoneos; + SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG; + SWIFT_OPTIMIZATION_LEVEL = "-Onone"; + VERSIONING_SYSTEM = "apple-generic"; + VERSION_INFO_PREFIX = ""; + }; + name = Debug; + }; + 2D6DCC702670E32500D76A4C /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ANALYZER_NONNULL = YES; + CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_ENABLE_OBJC_WEAK = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_COMMA = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_DOCUMENTATION_COMMENTS = YES; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_STRICT_PROTOTYPES = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + COPY_PHASE_STRIP = NO; + CURRENT_PROJECT_VERSION = 1; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + ENABLE_NS_ASSERTIONS = NO; + ENABLE_STRICT_OBJC_MSGSEND = YES; + GCC_C_LANGUAGE_STANDARD = gnu11; + GCC_NO_COMMON_BLOCKS = YES; + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + IPHONEOS_DEPLOYMENT_TARGET = 14.4; + MTL_ENABLE_DEBUG_INFO = NO; + MTL_FAST_MATH = YES; + SDKROOT = iphoneos; + SWIFT_COMPILATION_MODE = wholemodule; + SWIFT_OPTIMIZATION_LEVEL = "-O"; + VALIDATE_PRODUCT = YES; + VERSIONING_SYSTEM = "apple-generic"; + VERSION_INFO_PREFIX = ""; + }; + name = Release; + }; + 2D6DCC722670E32500D76A4C /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + BUILD_LIBRARY_FOR_DISTRIBUTION = YES; + CODE_SIGN_STYLE = Automatic; + DEFINES_MODULE = YES; + DEVELOPMENT_TEAM = 6C67KJ54CD; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + INFOPLIST_FILE = CSPickerViewSDK/Info.plist; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + IPHONEOS_DEPLOYMENT_TARGET = 9.0; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + "@loader_path/Frameworks", + ); + MACH_O_TYPE = staticlib; + PRODUCT_BUNDLE_IDENTIFIER = com.coderstar.CSPickerViewSDK; + PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)"; + SKIP_INSTALL = YES; + SUPPORTS_MACCATALYST = NO; + SWIFT_VERSION = 5.0; + TARGETED_DEVICE_FAMILY = "1,2"; + }; + name = Debug; + }; + 2D6DCC732670E32500D76A4C /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + BUILD_LIBRARY_FOR_DISTRIBUTION = YES; + CODE_SIGN_STYLE = Automatic; + DEFINES_MODULE = YES; + DEVELOPMENT_TEAM = 6C67KJ54CD; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + "EXCLUDED_ARCHS[sdk=iphonesimulator*]" = arm64; + INFOPLIST_FILE = CSPickerViewSDK/Info.plist; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + IPHONEOS_DEPLOYMENT_TARGET = 9.0; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + "@loader_path/Frameworks", + ); + MACH_O_TYPE = staticlib; + PRODUCT_BUNDLE_IDENTIFIER = com.coderstar.CSPickerViewSDK; + PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)"; + SKIP_INSTALL = YES; + SUPPORTS_MACCATALYST = NO; + SWIFT_VERSION = 5.0; + TARGETED_DEVICE_FAMILY = "1,2"; + }; + name = Release; + }; +/* End XCBuildConfiguration section */ + +/* Begin XCConfigurationList section */ + 2D6DCC632670E32500D76A4C /* Build configuration list for PBXProject "CSPickerViewSDK" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 2D6DCC6F2670E32500D76A4C /* Debug */, + 2D6DCC702670E32500D76A4C /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + 2D6DCC712670E32500D76A4C /* Build configuration list for PBXNativeTarget "CSPickerView" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 2D6DCC722670E32500D76A4C /* Debug */, + 2D6DCC732670E32500D76A4C /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; +/* End XCConfigurationList section */ + }; + rootObject = 2D6DCC602670E32500D76A4C /* Project object */; +} diff --git a/Example/CSPickerViewSDK/CSPickerViewSDK.xcodeproj/xcshareddata/xcschemes/CSPickerView.xcscheme b/Example/CSPickerViewSDK/CSPickerViewSDK.xcodeproj/xcshareddata/xcschemes/CSPickerView.xcscheme new file mode 100644 index 0000000..41f0a62 --- /dev/null +++ b/Example/CSPickerViewSDK/CSPickerViewSDK.xcodeproj/xcshareddata/xcschemes/CSPickerView.xcscheme @@ -0,0 +1,67 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Example/CSPickerViewSDK/CSPickerViewSDK/CSPickerViewSDK.h b/Example/CSPickerViewSDK/CSPickerViewSDK/CSPickerViewSDK.h new file mode 100644 index 0000000..7a8e20a --- /dev/null +++ b/Example/CSPickerViewSDK/CSPickerViewSDK/CSPickerViewSDK.h @@ -0,0 +1,18 @@ +// +// CSPickerViewSDK.h +// CSPickerViewSDK +// +// Created by CoderStar on 2021/6/9. +// + +#import + +//! Project version number for CSPickerViewSDK. +FOUNDATION_EXPORT double CSPickerViewSDKVersionNumber; + +//! Project version string for CSPickerViewSDK. +FOUNDATION_EXPORT const unsigned char CSPickerViewSDKVersionString[]; + +// In this header, you should import all the public headers of your framework using statements like #import + + diff --git a/Example/Tests/Info.plist b/Example/CSPickerViewSDK/CSPickerViewSDK/Info.plist similarity index 81% rename from Example/Tests/Info.plist rename to Example/CSPickerViewSDK/CSPickerViewSDK/Info.plist index ba72822..9bcb244 100644 --- a/Example/Tests/Info.plist +++ b/Example/CSPickerViewSDK/CSPickerViewSDK/Info.plist @@ -3,7 +3,7 @@ CFBundleDevelopmentRegion - en + $(DEVELOPMENT_LANGUAGE) CFBundleExecutable $(EXECUTABLE_NAME) CFBundleIdentifier @@ -13,12 +13,10 @@ CFBundleName $(PRODUCT_NAME) CFBundlePackageType - BNDL + $(PRODUCT_BUNDLE_PACKAGE_TYPE) CFBundleShortVersionString 1.0 - CFBundleSignature - ???? CFBundleVersion - 1 + $(CURRENT_PROJECT_VERSION) diff --git a/Example/Podfile b/Example/Podfile index 2bdd755..21549ff 100644 --- a/Example/Podfile +++ b/Example/Podfile @@ -2,12 +2,12 @@ use_frameworks! platform :ios, '9.0' +install! 'cocoapods', :warn_for_unused_master_specs_repo => false + target 'CSPickerView_Example' do pod 'CSPickerView', :path => '../' +# pod 'CSPickerView', :path => '../', :subspecs => ["source"] - target 'CSPickerView_Tests' do - inherit! :search_paths - - - end + pod 'SnapKit', '4.2.0' + pod 'LookinServer', :configurations => ['Debug'] # 查看UI,只编译进debug版本 end diff --git a/Example/Podfile.lock b/Example/Podfile.lock new file mode 100644 index 0000000..84dba5d --- /dev/null +++ b/Example/Podfile.lock @@ -0,0 +1,29 @@ +PODS: + - CSPickerView (0.1.0): + - CSPickerView/framework (= 0.1.0) + - CSPickerView/framework (0.1.0) + - LookinServer (1.0.2) + - SnapKit (4.2.0) + +DEPENDENCIES: + - CSPickerView (from `../`) + - LookinServer + - SnapKit (= 4.2.0) + +SPEC REPOS: + trunk: + - LookinServer + - SnapKit + +EXTERNAL SOURCES: + CSPickerView: + :path: "../" + +SPEC CHECKSUMS: + CSPickerView: 24a3db7930fa3d5572c568f6d877d6586f9fdef5 + LookinServer: d6874df8b58096c8d463817b6baaa3abc21d31f7 + SnapKit: fe8a619752f3f27075cc9a90244d75c6c3f27e2a + +PODFILE CHECKSUM: 8b6465639084f7e8d7023f43e2e813850520b8b9 + +COCOAPODS: 1.10.1 diff --git a/Example/Tests/Tests.swift b/Example/Tests/Tests.swift deleted file mode 100644 index aaf957e..0000000 --- a/Example/Tests/Tests.swift +++ /dev/null @@ -1,28 +0,0 @@ -import XCTest -import CSPickerView - -class Tests: XCTestCase { - - override func setUp() { - super.setUp() - // Put setup code here. This method is called before the invocation of each test method in the class. - } - - override func tearDown() { - // Put teardown code here. This method is called after the invocation of each test method in the class. - super.tearDown() - } - - func testExample() { - // This is an example of a functional test case. - XCTAssert(true, "Pass") - } - - func testPerformanceExample() { - // This is an example of a performance test case. - self.measure() { - // Put the code you want to measure the time of here. - } - } - -} diff --git a/README.md b/README.md index 380bc4b..e50807a 100644 --- a/README.md +++ b/README.md @@ -1,29 +1,79 @@ # CSPickerView -[![CI Status](https://img.shields.io/travis/Coder-Star/CSPickerView.svg?style=flat)](https://travis-ci.org/Coder-Star/CSPickerView) [![Version](https://img.shields.io/cocoapods/v/CSPickerView.svg?style=flat)](https://cocoapods.org/pods/CSPickerView) [![License](https://img.shields.io/cocoapods/l/CSPickerView.svg?style=flat)](https://cocoapods.org/pods/CSPickerView) [![Platform](https://img.shields.io/cocoapods/p/CSPickerView.svg?style=flat)](https://cocoapods.org/pods/CSPickerView) -## Example +## 安装 +### 手动 +将相应文件拷贝到工程中去,注意需要将资源文件也加入进去 +### CocoaPods +提供了二种安装方式 +- 源码方式,方便调试 +- framework形式,减少编译时间 -To run the example project, clone the repo, and run `pod install` from the Example directory first. +```ruby +pod 'CSPickerView' # framework形式 +pod 'CSPickerView', :subspecs => ["source"] # 源码形式 +pod 'CSPickerView', :subspecs => ["framework"] # framework形式,与 pod 'CSPickerView' 等效 +``` -## Requirements -## Installation +## 功能介绍 -CSPickerView is available through [CocoaPods](https://cocoapods.org). To install -it, simply add the following line to your Podfile: +- [x] 支持OC、Swift +- [x] 支持暗黑模式 +- [x] 支持多种属性个性化设置 +- [x] 国际化支持中文、英文,支持覆写其内容,只需在工程中语言文件key值相同便可覆盖 -```ruby -pod 'CSPickerView' +在`PickerViewConfig`这个单例类中看到很多属性,项目中注释也很完善。 + +```swift +/// 主背景色 +public var mainBackgroundColor +/// 蒙板颜色 +public var maskColor +/// 主要文字颜色 +public var mainTextColor +/// 左侧按钮颜色 +public var leftButtonColor +/// 右侧按钮颜色 +public var rightButtonColor +/// 中间文字颜色 +public var centerLabelColor +/// 分割线颜色 +public var lineColor +/// 强制语言编码 +public var languageCode +/// 动画时间 +public var animateDuration ``` -## Author +## 效果图 +### City + + + +### StartAndEndDate + +startAndEndDate | startAndEndTime +:-------------: | :-------------: +![startAndEndDate](https://github.com/Coder-Star/CSPickerView/raw/main/Sceenshots/startAndEndDate.png) | ![startAndEndTime](https://github.com/Coder-Star/CSPickerView/raw/main/Sceenshots/startAndEndTime.png) + +### DatePicker + +date | time | dateAndTime +:-------------: | :-------------: | :-------------: +![date](https://github.com/Coder-Star/CSPickerView/raw/main/Sceenshots/date.png) | ![time](https://github.com/Coder-Star/CSPickerView/raw/main/Sceenshots/time.png) | ![dateAndTime](https://github.com/Coder-Star/CSPickerView/raw/main/Sceenshots/dateAndTime.png) | + +### Picker -Coder-Star, litianxing@nowcoder.com +single | multiple | multipleAssociated +:-------------: | :-------------: | :-------------: +![single](https://github.com/Coder-Star/CSPickerView/raw/main/Sceenshots/single.png) | ![multiple](https://github.com/Coder-Star/CSPickerView/raw/main/Sceenshots/multiple.png) | ![multipleAssociated](https://github.com/Coder-Star/CSPickerView/raw/main/Sceenshots/multipleAssociated.png) -## License +### Select -CSPickerView is available under the MIT license. See the LICENSE file for more info. +singleSelect | multipleSelect +:-------------: | :-------------: +![singleSelect](https://github.com/Coder-Star/CSPickerView/raw/main/Sceenshots/singleSelect.png) | ![multipleSelect](https://github.com/Coder-Star/CSPickerView/raw/main/Sceenshots/multipleSelect.png) diff --git a/Sceenshots/city.png b/Sceenshots/city.png new file mode 100644 index 0000000..97d4e86 Binary files /dev/null and b/Sceenshots/city.png differ diff --git a/Sceenshots/date.png b/Sceenshots/date.png new file mode 100644 index 0000000..a4c683d Binary files /dev/null and b/Sceenshots/date.png differ diff --git a/Sceenshots/dateAndTime.png b/Sceenshots/dateAndTime.png new file mode 100644 index 0000000..ec8d691 Binary files /dev/null and b/Sceenshots/dateAndTime.png differ diff --git a/Sceenshots/multiple.png b/Sceenshots/multiple.png new file mode 100644 index 0000000..ce7b434 Binary files /dev/null and b/Sceenshots/multiple.png differ diff --git a/Sceenshots/multipleAssociated.png b/Sceenshots/multipleAssociated.png new file mode 100644 index 0000000..db8f176 Binary files /dev/null and b/Sceenshots/multipleAssociated.png differ diff --git a/Sceenshots/multipleSelect.png b/Sceenshots/multipleSelect.png new file mode 100644 index 0000000..9f4f958 Binary files /dev/null and b/Sceenshots/multipleSelect.png differ diff --git a/Sceenshots/single.png b/Sceenshots/single.png new file mode 100644 index 0000000..8d1f27c Binary files /dev/null and b/Sceenshots/single.png differ diff --git a/Sceenshots/singleSelect.png b/Sceenshots/singleSelect.png new file mode 100644 index 0000000..02e8517 Binary files /dev/null and b/Sceenshots/singleSelect.png differ diff --git a/Sceenshots/startAndEndDate.png b/Sceenshots/startAndEndDate.png new file mode 100644 index 0000000..2746142 Binary files /dev/null and b/Sceenshots/startAndEndDate.png differ diff --git a/Sceenshots/startAndEndTime.png b/Sceenshots/startAndEndTime.png new file mode 100644 index 0000000..a7fa359 Binary files /dev/null and b/Sceenshots/startAndEndTime.png differ diff --git a/Sceenshots/time.png b/Sceenshots/time.png new file mode 100644 index 0000000..1577033 Binary files /dev/null and b/Sceenshots/time.png differ diff --git a/buildFramework.sh b/buildFramework.sh new file mode 100755 index 0000000..d29db48 --- /dev/null +++ b/buildFramework.sh @@ -0,0 +1,78 @@ +#!/bin/sh +CUR_DIR=$(cd "$(dirname "$0")"; pwd) + + +# 编译模式,包括Release及Debug +BUILD_MODE="Release" +# FRAMEWORK的Target名称,也是输出的Framework和Bundle名称,保持一致的目的是方便合并处理 +# 设置如下:macho-type;xcode12剔除arm64架构;设置Deployment Target; +TARGET_NAME="CSPickerView" +# Framework输出路径 +FRAMEWORK_PATH=${CUR_DIR}/CSPickerView/Frameworks +# 生成临时的Framework路径 +BUILD_PATH=${CUR_DIR}/TempFrameworks +# 工程路径 +PROJECT_PARH=${CUR_DIR}/Example/CSPickerViewSDK + +# 删除冗余文件 +rm -rf ${BUILD_PATH} +cd ${PROJECT_PARH} + +# 构建真机和模拟器版本 +xcodebuild -target "${TARGET_NAME}" -configuration ${BUILD_MODE} -arch arm64 -arch armv7 -arch armv7s ONLY_ACTIVE_ARCH=NO defines_module=yes -sdk iphoneos BUILD_DIR="${BUILD_PATH}" BUILD_ROOT="${BUILD_PATH}" clean build +xcodebuild -target "${TARGET_NAME}" -configuration ${BUILD_MODE} -arch x86_64 -arch i386 ONLY_ACTIVE_ARCH=NO defines_module=yes -sdk iphonesimulator BUILD_DIR="${BUILD_PATH}" BUILD_ROOT="${BUILD_PATH}" clean build + +# 将框架结构复制到目标输出文件夹,删除之前的framework +rm -rf "${FRAMEWORK_PATH}/${TARGET_NAME}.framework" +cp -R "${BUILD_PATH}/${BUILD_MODE}-iphoneos/${TARGET_NAME}.framework" "${FRAMEWORK_PATH}" + +# 使用lipo创建通用二进制文件, +lipo -create -output "${FRAMEWORK_PATH}/${TARGET_NAME}.framework/${TARGET_NAME}" "${BUILD_PATH}/${BUILD_MODE}-iphonesimulator/${TARGET_NAME}.framework/${TARGET_NAME}" "${BUILD_PATH}/${BUILD_MODE}-iphoneos/${TARGET_NAME}.framework/${TARGET_NAME}" + +# 拷贝swiftmodule文件 +simulator_modules_path="${BUILD_PATH}/${BUILD_MODE}-iphonesimulator/${TARGET_NAME}.framework/Modules/${TARGET_NAME}.swiftmodule/." +# 如果.swiftmodule文件夹存在,就复制到项目目录 +if [ -d "${simulator_modules_path}" ]; then +cp -R "${simulator_modules_path}" "${FRAMEWORK_PATH}/${TARGET_NAME}.framework/Modules/${TARGET_NAME}.swiftmodule" +fi + + +# Bundle处理,如果没有资源,可注释掉该部分代码 +# 资源路径 +RESOURE_PATH=${CUR_DIR}/CSPickerView/Assets +if [ -e "${RESOURE_PATH}" ] +then +cp -R ${RESOURE_PATH} "${FRAMEWORK_PATH}/${TARGET_NAME}.bundle" +fi + +# xcode10.2之后,需要将真机与模拟器生成的Swift.h文件进行合并 + +FAT_SWIFT_HEADER_PATH="${FRAMEWORK_PATH}/${TARGET_NAME}.framework/Headers/${TARGET_NAME}-Swift.h" + +# 替换方式,如果模拟器与真机对外提供的API一致,则选择该方式,优先选择该方式,可减小文件体积 +FAT_SWIFT_HEADER_ARCHITECTURE="#if defined(__x86_64__) \&\& __x86_64__ || (__i386__) \&\& __i386__ || (__arm64__) \&\& __arm64__ || (__armv7__) \&\& __armv7__ || (__armv7s__) \&\& __armv7s__" +sed -i "" "1d" ${FAT_SWIFT_HEADER_PATH} +sed -i "" "1d" ${FAT_SWIFT_HEADER_PATH} +sed -i "" "1s/^/${FAT_SWIFT_HEADER_ARCHITECTURE}/" ${FAT_SWIFT_HEADER_PATH} + + +# 合并方式,如果模拟器与真机对外提供的API不一致,则选择该方式 +#SIMULATOR_SWIFT_HEADER_PATH="${BUILD_PATH}/${BUILD_MODE}-iphonesimulator/${TARGET_NAME}.framework/Headers/${TARGET_NAME}-Swift.h" +#DEVICE_SWIFT_HEADER_PATH="${BUILD_PATH}/${BUILD_MODE}-iphoneos/${TARGET_NAME}.framework/Headers/${TARGET_NAME}-Swift.h" +#if [ -e "${SIMULATOR_SWIFT_HEADER_PATH}" ] && [ -e "${DEVICE_SWIFT_HEADER_PATH}" ] +#then +#echo "#if TARGET_OS_SIMULATOR" > "${FAT_SWIFT_HEADER_PATH}" +#cat "${SIMULATOR_SWIFT_HEADER_PATH}" >> "${FAT_SWIFT_HEADER_PATH}" +#echo "#else" >> ${FAT_SWIFT_HEADER_PATH} +#cat "${DEVICE_SWIFT_HEADER_PATH}" >> "${FAT_SWIFT_HEADER_PATH}" +#echo "#endif" >> "${FAT_SWIFT_HEADER_PATH}" +#fi + +# 删除生成过程中产生的冗余文件 +rm -rf ${PROJECT_PARH}/build/ +rm -rf ${BUILD_PATH} +rm -rf "${FRAMEWORK_PATH}/${TARGET_NAME}.framework/_CodeSignature" + +# 打开 目标输出文件夹 +#open "${FRAMEWORK_PATH}" + diff --git a/uploadPod.sh b/uploadPod.sh new file mode 100755 index 0000000..6ead0cc --- /dev/null +++ b/uploadPod.sh @@ -0,0 +1,36 @@ +#!/bin/sh +POD_NAME="CSPickerView" +# 新版本号 +NEW_VERSION_NUMBER=$1 +# 提交信息 +COMMIT_MESSAGE=$2 + +CURRENT_PATH=$(cd `dirname $0`; pwd) +cd ${CURRENT_PATH} + +if [ $NEW_VERSION_NUMBER ]; then +echo ${NEW_VERSION_NUMBER} +fi +if [ $COMMIT_MESSAGE ]; then +echo ${COMMIT_MESSAGE} +fi + +#BUILD_FRAMEWORK_SH_PATH="/buildFramework.sh" +#sh ${BUILD_FRAMEWORK_SH_PATH} + +#git stash +#git pull --tags +#git stash pop + +VERSION_NUMBER=`grep -E 's.version.*=' ${POD_NAME}.podspec | awk -F \' '{print $2}'` + +LINE_NUMBER=`grep -nE 's.version.*=' ${POD_NAME}.podspec | cut -d : -f1` +sed -i "" "${LINE_NUMBER}s/${VERSION_NUMBER}/${NEW_VERSION_NUMBER}/g" ${POD_NAME}.podspec + +git add . +git commit -m ${NEW_VERSION_NUMBER} +git tag ${NEW_VERSION_NUMBER} +git push --tags + + +#pod trunk push ${POD_NAME}.podspec