Commit df480168 authored by lujunye's avatar lujunye

时间选取

parent dee0737a
...@@ -9,11 +9,14 @@ ...@@ -9,11 +9,14 @@
import UIKit import UIKit
import WebKit import WebKit
import MAMapKit import MAMapKit
import SwiftyJSON
import SwiftDate
class XiaYunDanViewController: BaseViewController,UITableViewDelegate,UITableViewDataSource,JiTuoWuXinXiViewDelegate,JiPaiFangShiViewControllerDelegate,ZengZhiServicesViewControllerDelegate,AdressSelectCellDelegate,DZGLViewControllerDelegate,XinZengDiZhiViewControllerDelegate,TitleAndTFBtnCellDelegate,WenDuCellDelegate,LogisticalSelectViewDelegate{ class XiaYunDanViewController: BaseViewController,UITableViewDelegate,UITableViewDataSource,JiTuoWuXinXiViewDelegate,JiPaiFangShiViewControllerDelegate,ZengZhiServicesViewControllerDelegate,AdressSelectCellDelegate,DZGLViewControllerDelegate,XinZengDiZhiViewControllerDelegate,TitleAndTFBtnCellDelegate,WenDuCellDelegate,LogisticalSelectViewDelegate, UIPickerViewDataSource, UIPickerViewDelegate{
//时间选择背景
var bgBtn:UIButton?
var btmView:UIView?
@IBOutlet weak var topCarBtnSelectView: UIView! @IBOutlet weak var topCarBtnSelectView: UIView!
...@@ -235,7 +238,7 @@ class XiaYunDanViewController: BaseViewController,UITableViewDelegate,UITableVie ...@@ -235,7 +238,7 @@ class XiaYunDanViewController: BaseViewController,UITableViewDelegate,UITableVie
@IBAction func selectAction(_ sender: UIButton) { @IBAction func selectAction(_ sender: UIButton) {
if rightBtn == sender { if rightBtn == sender {
rightBtn.isSelected = true rightBtn.isSelected = true
leftBtn.isSelected = false leftBtn.isSelected = false
lineV.frame.origin.x = fullScreenWidth * 0.5 lineV.frame.origin.x = fullScreenWidth * 0.5
...@@ -278,10 +281,12 @@ class XiaYunDanViewController: BaseViewController,UITableViewDelegate,UITableVie ...@@ -278,10 +281,12 @@ class XiaYunDanViewController: BaseViewController,UITableViewDelegate,UITableVie
@objc func locSelect(){ @objc func locSelect(){
print("locSelect") print("locSelect")
} }
override func viewDidLoad() { override func viewDidLoad() {
super.viewDidLoad() super.viewDidLoad()
getDay()
locBtn.isUserInteractionEnabled = false locBtn.isUserInteractionEnabled = false
navbar.title = "运单列表" navbar.title = "运单列表"
...@@ -525,13 +530,15 @@ class XiaYunDanViewController: BaseViewController,UITableViewDelegate,UITableVie ...@@ -525,13 +530,15 @@ class XiaYunDanViewController: BaseViewController,UITableViewDelegate,UITableVie
} }
}else{//货拉拉 }else{//货拉拉
switch section { switch section {
case 1:return 5 case 1:return 2
case 2:return 4 case 2:return 4
case 3:return 2 case 3:return 2
default: return 1 default: return 1
} }
} }
} }
func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) { func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
if tableView == listView { if tableView == listView {
if indexPath.section == 1 { if indexPath.section == 1 {
...@@ -578,10 +585,51 @@ class XiaYunDanViewController: BaseViewController,UITableViewDelegate,UITableVie ...@@ -578,10 +585,51 @@ class XiaYunDanViewController: BaseViewController,UITableViewDelegate,UITableVie
} }
} }
} }
}else{//货拉拉 }else{//MARK: - 货拉拉did select
print(indexPath.section,indexPath.row)
if indexPath.section == 2 {
if indexPath.row == 0 {
if bgBtn == nil {
let btn = UIButton()
self.view.addSubview(btn)
btn.backgroundColor = UIColor.black
btn.alpha = 0.4
btn.addTarget(self, action: #selector(closeAc), for: .touchUpInside)
btn.snp.makeConstraints { (make) in
make.top.right.bottom.left.equalTo(0)
}
bgBtn = btn
}
if btmView == nil {
let view = UIView()
view.backgroundColor = UIColor.white
btmView = view
self.view.addSubview(btmView!)
btmView!.snp.makeConstraints { (make) in
make.left.bottom.right.equalTo(0)
make.height.equalTo(360)
}
btmView!.layer.cornerRadius = 5
btmView!.layer.maskedCorners = [CACornerMask.layerMinXMinYCorner,CACornerMask.layerMaxXMinYCorner]
}
showTimeSelect(view: btmView!)
}
}
} }
} }
@objc func closeAc(){
bgBtn?.removeFromSuperview()
btmView?.subviews.forEach({ (view) in
view.removeFromSuperview()
})
btmView?.removeFromSuperview()
btmView = nil
bgBtn = nil
}
func tableView(_ tableView: UITableView, heightForRowAt indexPath: IndexPath) -> CGFloat { func tableView(_ tableView: UITableView, heightForRowAt indexPath: IndexPath) -> CGFloat {
if tableView == listView { if tableView == listView {
if indexPath.section == 0 { if indexPath.section == 0 {
...@@ -692,7 +740,8 @@ class XiaYunDanViewController: BaseViewController,UITableViewDelegate,UITableVie ...@@ -692,7 +740,8 @@ class XiaYunDanViewController: BaseViewController,UITableViewDelegate,UITableVie
cell.nameLbl.text = title2Arr[indexPath.row] cell.nameLbl.text = title2Arr[indexPath.row]
return cell return cell
} }
}else{//MARK: - 货拉拉cell }else{
//MARK: - 货拉拉cell
if indexPath.section == 0 { if indexPath.section == 0 {
let cell = tableView.dequeueReusableCell(withIdentifier: "HLLTopCell") as! HLLTopCell let cell = tableView.dequeueReusableCell(withIdentifier: "HLLTopCell") as! HLLTopCell
cell.datas = carTypesArr cell.datas = carTypesArr
...@@ -739,6 +788,7 @@ class XiaYunDanViewController: BaseViewController,UITableViewDelegate,UITableVie ...@@ -739,6 +788,7 @@ class XiaYunDanViewController: BaseViewController,UITableViewDelegate,UITableVie
} }
if indexPath.section == 2 { if indexPath.section == 2 {
let cell = tableView.dequeueReusableCell(withIdentifier: "TitleAndBtnCell") as! TitleAndBtnCell let cell = tableView.dequeueReusableCell(withIdentifier: "TitleAndBtnCell") as! TitleAndBtnCell
cell.btn.isUserInteractionEnabled = false
cell.nameLbl.text = hPart2[indexPath.row] cell.nameLbl.text = hPart2[indexPath.row]
return cell return cell
} }
...@@ -1013,5 +1063,228 @@ class XiaYunDanViewController: BaseViewController,UITableViewDelegate,UITableVie ...@@ -1013,5 +1063,228 @@ class XiaYunDanViewController: BaseViewController,UITableViewDelegate,UITableVie
} }
} }
//选择器
var pickerView:UIPickerView!
//所以地址数据集合
var dayArr:Array<Any> = []
var dayIdx = 0
var hourIdx = 0
var minIdx = 0
//MARK:--地址选择器
func showTimeSelect(view:UIView){
let lbl = UILabel()
view.addSubview(lbl)
lbl.text = "请选择用车时间"
lbl.font = UIFont(name: "PingFangSC-Medium", size: 15)
lbl.textColor = UIColor(named: "标题字颜色")
lbl.textAlignment = .center
lbl.snp.makeConstraints { (make) in
make.top.left.right.equalTo(0)
make.height.equalTo(50)
}
let line = UIView()
view.addSubview(line)
line.backgroundColor = UIColor(named: "灰色分界线")
line.snp.makeConstraints { (make) in
make.top.equalTo(lbl.snp.bottom)
make.left.right.equalTo(0)
make.height.equalTo(1)
}
//创建选择器
pickerView=UIPickerView()
//将dataSource设置成自己
pickerView.dataSource=self
//将delegate设置成自己
pickerView.delegate=self
view.addSubview(pickerView)
pickerView.snp.makeConstraints { (make) in
make.top.equalTo(line.snp.bottom)
make.left.right.equalTo(0)
make.bottom.equalTo(-49)
}
pickerView.selectRow(dayIdx, inComponent: 0, animated: false)
pickerView(pickerView, didSelectRow: dayIdx, inComponent: 0)
pickerView.selectRow(hourIdx, inComponent: 1, animated: false)
pickerView(pickerView, didSelectRow: hourIdx, inComponent: 1)
pickerView.selectRow(minIdx, inComponent: 2, animated: false)
pickerView(pickerView, didSelectRow: minIdx, inComponent: 2)
let btmBtn = UIButton()
btmBtn.backgroundColor = UIColor(named: "按钮渐变色上")
btmBtn.setTitle("确定", for: .normal)
btmBtn.setTitleColor(UIColor.white, for: .normal)
btmBtn.titleLabel?.font = UIFont(name: "PingFangSC-Medium", size: 15)
btmBtn.addTarget(self, action: #selector(submitAc), for: .touchUpInside)
view.addSubview(btmBtn)
btmBtn.snp.makeConstraints { (make) in
make.top.equalTo(pickerView.snp.bottom)
make.left.right.bottom.equalTo(0)
}
}
@objc func submitAc(){
print("submitAc")
}
//设置选择框的列数为3列,继承于UIPickerViewDataSource协议
func numberOfComponents(in pickerView: UIPickerView) -> Int {
return 3
}
//设置选择框的行数,继承于UIPickerViewDataSource协议
func pickerView(_ pickerView: UIPickerView,
numberOfRowsInComponent component: Int) -> Int {
let dict = self.dayArr[dayIdx] as! NSDictionary
if component == 0 {
return self.dayArr.count
} else if component == 1 {
let hours = dict["list"] as! NSArray
return hours.count
} else {
let hours = dict["list"] as! NSArray
let min = hours[hourIdx] as! NSDictionary
let arr = min["list"] as! NSArray
return arr.count
}
}
//设置选择框各选项的内容,继承于UIPickerViewDelegate协议
func pickerView(_ pickerView: UIPickerView, titleForRow row: Int,
forComponent component: Int) -> String? {
if component == 0 {
let rowDic = self.dayArr[row] as! NSDictionary
return rowDic["day"] as? String
}else if component == 1 {
let day = self.dayArr[dayIdx] as! NSDictionary
let hour = (day["list"] as! NSArray)[row]
as! [String: AnyObject]
if hour["hour"] as! String == "立即用车" {
return "立即用车"
}
return "\(String(describing: hour["hour"]))"
}else {
let day = self.dayArr[dayIdx] as! NSDictionary
let hours = day["list"] as! NSArray
let hour = hours[hourIdx] as! NSDictionary
let mins = hour["list"] as! NSArray
for item in mins {
print(item)
}
return mins[row] as! String
}
}
//选中项改变事件(将在滑动停止后触发)
func pickerView(_ pickerView: UIPickerView, didSelectRow row: Int,
inComponent component: Int) {
//根据列、行索引判断需要改变数据的区域
switch (component) {
case 0:
dayIdx = row;
pickerView.reloadComponent(1);
pickerView.reloadComponent(2);
pickerView.selectRow(hourIdx, inComponent: 1, animated: false)
pickerView.selectRow(minIdx, inComponent: 2, animated: false)
case 1:
hourIdx = row;
pickerView.reloadComponent(2);
pickerView.selectRow(minIdx, inComponent: 2, animated: false)
case 2:
minIdx = 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.dayArr[row] as! NSDictionary
genderLbl.text = rowDic["day"] as? String
}else if component == 1 {
let day = self.dayArr[dayIdx] as! NSDictionary
let hour = (day["list"] as! NSArray)[row]
as! [String: AnyObject]
genderLbl.text = hour["hour"] as? String
}else {
let day = self.dayArr[dayIdx] as! NSDictionary
let hours = day["list"] as! NSArray
let hour = hours[hourIdx] as! NSDictionary
let mins = hour["list"] as! NSArray
genderLbl.text = mins[row] as! String
}
return genderLbl
}
func getDay(){
let date0 = Date()
var tempArr:Array<NSString> = []
for i in 0 ..< 24 {
tempArr.append("\(i)" as NSString)
}
var hourArr:Array<NSString> = []
let minArr:Array<String> = ["0分","10分","20分","30分","40分","50分"]
for i in 0 ..< 10 {//日
let dD:NSMutableDictionary = NSMutableDictionary()
let item = date0 + i.days + 8.hours
var dList:Array<NSMutableDictionary> = []
if i == 0 {//首日
for j in 0 ..< tempArr.count {
if tempArr[j].integerValue > item.hour{
hourArr.append(tempArr[j])
}
}
hourArr.insert("立即用车", at: 0)
for k in 0 ..< hourArr.count {
let hD:NSMutableDictionary = NSMutableDictionary()
hD["hour"] = hourArr[k]
if k == 0 {//首小时
hD["list"] = []
}else{
hD["hour"] = "\(hourArr[k])点"
hD["list"] = minArr
}
dList.append(hD)
}
dD["day"] = "今天"
dD["list"] = dList
dayArr.append(dD)
}else if i == 1{
for k in 0 ..< tempArr.count {
let hD:NSMutableDictionary = NSMutableDictionary()
hD["hour"] = "\(tempArr[k])点"
hD["list"] = minArr
dList.append(hD)
}
dD["day"] = "明天"
dD["list"] = dList
dayArr.append(dD)
}else{
for k in 0 ..< tempArr.count {
let hD:NSMutableDictionary = NSMutableDictionary()
hD["hour"] = "\(tempArr[k])点"
hD["list"] = minArr
dList.append(hD)
}
dD["day"] = "\(item.month)\(item.day)日"
dD["list"] = dList
dayArr.append(dD)
}
}
}
} }
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