想做一个课程表app,现在是想用三个pickerview给用户选择周几上课以及上课下课的时间,但是pickerview选出来的时间是错乱的,完全没有规律,求
解答一下(做的第一个app,自学的)
//
// ViewController.swift
// Timetable
//
// Created by 魏瑾 on 2021/10/10.
//
import UIKit
class ViewController: UIViewController {
@IBOutlet weak var ChooseWeekTextField: UITextField!
@IBOutlet weak var ChooseStartTimeTextField: UITextField!
@IBOutlet weak var ChooseEndTimeTextField: UITextField!
let Week = ["周一","周二","周三","周四","周五","周六","周天"]
let StartTimeHour = ["","0","1","2","3","4","5","6","7","8","9","10","11","12","13","14","15","16","17","18","19","20","21","22","23"]
let StartTimeScend = ["","01","02","03","04","05","06","07","08","09","10","11","12","13","14","15","16","17","18","19","20","21","22","23","24","25","26","27","28","29","30","31","32","33","34","35","36","37","38","39","40","41","42","43","44","45","46","47","48","49","50","51","52","53","54","55","56","57","58","59"]
let EndTimeHour = ["","0","1","2","3","4","5","6","7","8","9","10","11","12","13","14","15","16","17","18","19","20","21","22","23"]
let EndTimeScend = ["","01","02","03","04","05","06","07","08","09","10","11","12","13","14","15","16","17","18","19","20","21","22","23","24","25","26","27","28","29","30","31","32","33","34","35","36","37","38","39","40","41","42","43","44","45","46","47","48","49","50","51","52","53","54","55","56","57","58","59"]
var WeekPickerView = UIPickerView()
var StarTimePickerView = UIPickerView()
var EndTimePickerView = UIPickerView()
var ClassWeekDay = ""
var ClassStartTimeHour = ""
var ClassStartTimeScend = ""
var ClassEndTimeHour = ""
var ClassEndTimeScend = ""
override func viewDidLoad() {
super.viewDidLoad()
ChooseWeekTextField.inputView = WeekPickerView
ChooseStartTimeTextField.inputView = StarTimePickerView
ChooseEndTimeTextField.inputView = EndTimePickerView
ChooseWeekTextField.textAlignment = .center
ChooseStartTimeTextField.textAlignment = .center
ChooseEndTimeTextField.textAlignment = .center
WeekPickerView.dataSource = self
WeekPickerView.delegate = self
StarTimePickerView.dataSource = self
StarTimePickerView.delegate = self
EndTimePickerView.dataSource = self
EndTimePickerView.delegate = self
WeekPickerView.tag = 1
StarTimePickerView.tag = 2
EndTimePickerView.tag = 3
creatChooseWeekPicker()
}
func creatChooseWeekPicker() {
let ToolBar = UIToolbar()
ToolBar.sizeToFit()
let DoneButton = UIBarButtonItem(title: "确认", style: .done, target: nil, action: #selector(DoneButtonPressed))
ToolBar.setItems([DoneButton], animated: true)
ChooseWeekTextField.inputAccessoryView = ToolBar
ChooseStartTimeTextField.inputAccessoryView = ToolBar
ChooseEndTimeTextField.inputAccessoryView = ToolBar
}
@objc func DoneButtonPressed() {
self.view.endEditing(true)
}
}
extension ViewController: UIPickerViewDataSource {
func numberOfComponents(in pickerView: UIPickerView) -> Int {
switch pickerView.tag {
case 1:
return 1
case 2:
return 4
case 3:
return 4
default:
return 1
}
}
func pickerView(_ pickerView: UIPickerView, numberOfRowsInComponent component: Int) -> Int {
switch pickerView.tag {
case 1:
return Week.count
case 2:
switch component {
case 0:
return StartTimeHour.count
case 1:
return 1
case 2:
return StartTimeScend.count
case 3:
return 1
default:
return 0
}
case 3:
switch component {
case 0:
return EndTimeHour.count
case 1:
return 1
case 2:
return EndTimeScend.count
case 3:
return 1
default:
return 0
}
default:
return 1
}
}
}
extension ViewController: UIPickerViewDelegate {
func pickerView(_ pickerView: UIPickerView, titleForRow row: Int, forComponent component: Int) -> String? {
switch pickerView.tag {
case 1:
ClassWeekDay = Week[row]
return Week[row]
case 2:
switch component {
case 0:
ClassStartTimeHour = StartTimeHour[row]
return StartTimeHour[row]
case 1:
return "时"
case 2:
ClassStartTimeScend = StartTimeScend[row]
return StartTimeScend[row]
case 3:
return "分"
default:
return "请重新选择"
}
case 3:
switch component {
case 0:
ClassEndTimeHour = EndTimeHour[row]
return EndTimeHour[row]
case 1:
return "时"
case 2:
ClassEndTimeScend = EndTimeScend[row]
return EndTimeScend[row]
case 3:
return "分"
default:
return "请重新选择"
}
default:
return "haha"
}
}
func pickerView(_ pickerView: UIPickerView, attributedTitleForRow row: Int, forComponent component: Int) -> NSAttributedString? {
switch pickerView.tag {
case 1:
ChooseWeekTextField.text = Week[row]
case 2:
ChooseStartTimeTextField.text = "\(ClassStartTimeHour)时\(ClassStartTimeScend)分"
case 3:
ChooseEndTimeTextField.text = "\(ClassEndTimeHour)时\(ClassEndTimeScend)分"
default:
return nil
}
return nil
}
}
你好,我是有问必答小助手,非常抱歉,本次您提出的有问必答问题,技术专家团超时未为您做出解答
本次提问扣除的有问必答次数,将会以问答VIP体验卡(1次有问必答机会、商城购买实体图书享受95折优惠)的形式为您补发到账户。
因为有问必答VIP体验卡有效期仅有1天,您在需要使用的时候【私信】联系我,我会为您补发。