Commit 4b9916af authored by lujunye's avatar lujunye

按私服撒旦法撒旦法333

parent 4c88eba7
......@@ -13,7 +13,7 @@ import LGButton
protocol P_P_H_Adr_VC_Delegate {
func P_P_H_Adr_VC_Data(adrData:addPinPinOrder_adrInfo,isSend:Bool,idx:Int)
}
class P_P_H_Adr_VC: BaseViewController,SJMapViewControllerDelegate, UIPickerViewDataSource, UIPickerViewDelegate,UITextViewDelegate {
class P_P_H_Adr_VC: BaseViewController,SJMapViewControllerDelegate,UITextViewDelegate {
@IBOutlet weak var submit_btn: LGButton!
var isSend = false
var idx = 0
......@@ -98,42 +98,6 @@ class P_P_H_Adr_VC: BaseViewController,SJMapViewControllerDelegate, UIPickerView
self.navigationController?.pushViewController(vc, animated: true)
}
@objc func adrSelectFinish(sender:UIButton){
var proName = ""
var cityName = ""
var areaName = ""
let proDict = addressArray[provinceIndex] as! Dictionary<String,Any>
proName = proDict["area_name"] as! String
if (proDict["city_list"] as! NSArray).count > 0 {
let cityDict = (proDict["city_list"] as! NSArray)[cityIndex] as! [String: AnyObject]
cityName = cityDict["area_name"] as! String
if (cityDict["district_list"] as! NSArray).count > 0 {
let areaDict = (cityDict["district_list"] as! NSArray)[areaIndex] as! Dictionary<String,Any>
areaName = areaDict["area_name"] as! String
}
}
var selectAdr = proName
if cityName.count > 0 {
selectAdr = proName + "-" + cityName
if areaName.count > 0 {
selectAdr = proName + "-" + cityName + "-" + areaName
}
}
bgBtn?.removeFromSuperview()
btmView?.subviews.forEach({ (view) in
view.removeFromSuperview()
})
btmView?.removeFromSuperview()
btmView = nil
bgBtn = nil
city_lbl.text = selectAdr
}
func textViewDidChange(_ textView: UITextView) {
if textView == textTV {
if textView.text.count != 0 {
......@@ -219,9 +183,7 @@ class P_P_H_Adr_VC: BaseViewController,SJMapViewControllerDelegate, UIPickerView
make.right.equalTo(-15)
make.height.equalTo(200)
}
getIndex()
textTV.delegate = self
if adrInfo != nil {
......@@ -244,183 +206,13 @@ class P_P_H_Adr_VC: BaseViewController,SJMapViewControllerDelegate, UIPickerView
func getIndex(){
let path = Bundle.main.path(forResource: "address_new", ofType: "json")
let url = URL(fileURLWithPath: path!)
// 带throws的方法需要抛异常
do {
let data = try Data(contentsOf: url)
let jsonData = JSON(data)
print("地址文件数据",jsonData["data"])
self.addressArray = jsonData["data"].arrayObject!
for i in 0 ..< addressArray.count {
let item = addressArray[i] as! Dictionary<String,Any>
if item["area_id"] as! Int == provinceIndex {
let citys = item["city_list"] as! Array<Dictionary<String,Any>>
if citys.count == 0 {
provinceIndex = i
city_lbl.text = item["area_name"]! as! String
}
for j in 0 ..< citys.count {
let cItem = citys[j]
if cItem["area_id"] as! Int == cityIndex {
let districts = cItem["district_list"] as! Array<Dictionary<String,Any>>
if districts.count == 0 {
cityIndex = j
city_lbl.text = "\(item["area_name"]!)-\(cItem["area_name"]!)"
}
for k in 0 ..< districts.count{
let dItem = districts[k]
if dItem["area_id"] as! Int == areaIndex{
provinceIndex = i
cityIndex = j
areaIndex = k
city_lbl.text = "\(item["area_name"]!)-\(cItem["area_name"]!)-\(dItem["area_name"]!)"
break
}
}
}
}
}else{
provinceIndex = 0
cityIndex = 0
areaIndex = 0
}
}
} catch let error as Error? {
print("读取本地数据出现错误!",error as Any)
}
}
//MARK:--地址选择器
func showAreaSelect(view:UIView){
//创建选择器
pickerView=UIPickerView()
//将dataSource设置成自己
pickerView.dataSource=self
//将delegate设置成自己
pickerView.delegate=self
view.addSubview(pickerView)
pickerView.snp.makeConstraints { (make) in
make.top.equalTo(30)
make.left.right.bottom.equalTo(0)
}
pickerView.selectRow(provinceIndex, inComponent: 0, animated: false)
pickerView(pickerView, didSelectRow: provinceIndex, inComponent: 0)
pickerView.selectRow(cityIndex, inComponent: 1, animated: false)
pickerView(pickerView, didSelectRow: cityIndex, inComponent: 1)
pickerView.selectRow(areaIndex, inComponent: 2, animated: false)
pickerView(pickerView, didSelectRow: areaIndex, inComponent: 2)
}
//选择器
var pickerView:UIPickerView!
//所以地址数据集合
var addressArray:Array<Any> = []
//设置选择框的列数为3列,继承于UIPickerViewDataSource协议
func numberOfComponents(in pickerView: UIPickerView) -> Int {
return 3
}
//设置选择框的行数,继承于UIPickerViewDataSource协议
func pickerView(_ pickerView: UIPickerView,
numberOfRowsInComponent component: Int) -> Int {
if component == 0 {
return self.addressArray.count
} else if component == 1 {
print("alkjdflkasd == ",provinceIndex)
let province = self.addressArray[provinceIndex] as! Dictionary<String,Any>
return (province["city_list"]! as! NSArray).count
} else {
let province = self.addressArray[provinceIndex] as! Dictionary<String,Any>
if (province["city_list"] as! NSArray).count == 0 {
return 0
}
if let city = (province["city_list"] as! NSArray)[cityIndex]
as? [String: AnyObject] {
print(city["district_list"] as Any)
return (city["district_list"]! as! NSArray).count
} else {
return 0
}
}
}
//设置选择框各选项的内容,继承于UIPickerViewDelegate协议
func pickerView(_ pickerView: UIPickerView, titleForRow row: Int,
forComponent component: Int) -> String? {
if component == 0 {
let rowDic = self.addressArray[row] as! Dictionary<String,Any>
return rowDic["area_name"] as? String
}else if component == 1 {
let province = self.addressArray[provinceIndex] as! Dictionary<String,Any>
let city = (province["city_list"] as! NSArray)[row]
as! [String: AnyObject]
return city["area_name"] as? String
}else {
let province = self.addressArray[provinceIndex] as! Dictionary<String,Any>
let city = (province["city_list"] as! NSArray)[cityIndex]
as! [String: AnyObject]
let area = (city["district_list"] as! NSArray)[row] as! Dictionary<String,Any>
return area["area_name"] as? String
}
}
//选中项改变事件(将在滑动停止后触发)
func pickerView(_ pickerView: UIPickerView, didSelectRow row: Int,
inComponent component: Int) {
//根据列、行索引判断需要改变数据的区域
switch (component) {
case 0:
provinceIndex = row;
pickerView.reloadComponent(1);
pickerView.reloadComponent(2);
pickerView.selectRow(cityIndex, inComponent: 1, animated: false)
pickerView.selectRow(areaIndex, inComponent: 2, animated: false)
case 1:
cityIndex = row;
pickerView.reloadComponent(2);
pickerView.selectRow(areaIndex, inComponent: 2, animated: false)
case 2:
areaIndex = row;
default:
break;
}
}
//自定义UIPickerView
func pickerView(_ pickerView: UIPickerView, viewForRow row: Int, forComponent component: Int, reusing view: UIView?) -> UIView {
let genderLbl = UILabel()
genderLbl.textAlignment = .center
genderLbl.font = UIFont.systemFont(ofSize: 15)
genderLbl.textColor = UIColor.init(named: "标题字颜色")
if component == 0 {
let rowDic = self.addressArray[row] as! Dictionary<String,Any>
genderLbl.text = rowDic["area_name"] as? String
}else if component == 1 {
let province = self.addressArray[provinceIndex] as! Dictionary<String,Any>
let city = (province["city_list"] as! NSArray)[row]
as! [String: AnyObject]
genderLbl.text = city["area_name"] as? String
}else {
let province = self.addressArray[provinceIndex] as! Dictionary<String,Any>
let city = (province["city_list"] as! NSArray)[cityIndex]
as! [String: AnyObject]
let area = (city["district_list"] as! NSArray)[row] as! Dictionary<String,Any>
genderLbl.text = area["area_name"] as? String
}
return genderLbl
}
@IBOutlet weak var adrCenterY: NSLayoutConstraint!
func textSize(text : String , font : UIFont , maxSize : CGSize) -> CGSize{
return text.boundingRect(with: maxSize, options: [.usesLineFragmentOrigin], attributes: [NSAttributedString.Key.font : font], context: nil).size
}
func getInsets() {
let tvSize = textSize(text: adrTv.text, font: UIFont.systemFont(ofSize: 13), maxSize: CGSize(width: adrTv.bounds.size.width, height: 900))
if tvSize.height > 20 {
......@@ -429,5 +221,6 @@ class P_P_H_Adr_VC: BaseViewController,SJMapViewControllerDelegate, UIPickerView
adrCenterY.constant = 4
}
}
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment