Я новичок в программировании Swift. Я создал 3 сборщика и добавил некоторые значения из кортежей. Моя задача заключается в том, что я не знаю, как отделить двойники от кортежей и рассчитать промежуточный итог с количеством. Какой бы тип билета отображался на Picker2
, мне нужно умножить его на количество от Picker3
и отобразить промежуточный итог.Рассчитать промежуточный итог с использованием кортежей и 3 UIPickerviews
Вот мое кодирование.
import UIKit
class BuyTicketViewController: UIViewController, UIPickerViewDelegate,UIPickerViewDataSource, UITextFieldDelegate{
@IBOutlet weak var Picker1: UIPickerView! = UIPickerView()
@IBOutlet weak var Picker2: UIPickerView! = UIPickerView()
@IBOutlet weak var Picker3: UIPickerView! = UIPickerView()
@IBOutlet weak var cityTextField: UITextField!
@IBOutlet weak var typeTextField: UITextField!
@IBOutlet weak var qtyTextField: UITextField!
var seletedItemArray = [(String,Double)]()
var Cities = ["Las Vegas","Los Angeles","New York"]
var typeLasVegas = [("City Tour $20.50", 20.50),("Museum $10.00", 10.00), ("Amusement Park $75.00",75.00)]
var typeLosAnglese = [("City Tour $29.99", 29.99),("Museum $15.00", 15.00), ("Amusement Park $79.99",79.99)]
var typeNewYork = [("City Tour $39.99", 39.99),("Museum $12.50", 12.50), ("Amusement Park $65.00",65.00)]
var Qt = [("1", 1.0),("2", 2.0),("3",3.0),("4", 4.0),("5",5.0),("6",6.0)]
var subTotal = 0.0
var ticketQty = 0
var ticketPrice = 0.0
override func viewDidLoad() {
super.viewDidLoad()
Picker1.isHidden = true
Picker2.isHidden = true
Picker3.isHidden = true
cityTextField.delegate = self
Picker1.delegate = self
typeTextField.delegate = self
Picker2.delegate = self
qtyTextField.delegate = self
Picker3.delegate = self
self.cityTextField.inputView = self.Picker1
self.typeTextField.inputView = self.Picker2
self.qtyTextField.inputView = self.Picker3
Picker1.tag = 0
Picker2.tag = 1
Picker3.tag = 2
// Do any additional setup after loading the view.
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}
func pickerView(_ pickerView: UIPickerView, titleForRow row: Int, forComponent component: Int) -> String? {
if pickerView.tag == 0
{
return Cities[row]
}
else if pickerView.tag == 1
{
return seletedItemArray[row].0
}
else if pickerView.tag == 2
{
return Qt[row].0
}
return ""
}
func pickerView(_ pickerView: UIPickerView, numberOfRowsInComponent component: Int) -> Int {
if pickerView.tag == 0
{
return Cities.count
}
else if pickerView.tag == 1
{
return seletedItemArray.count
}
else if pickerView.tag == 2
{
return Qt.count
}
return 1
}
func pickerView(_ pickerView: UIPickerView, didSelectRow row: Int, inComponent component: Int)
{
if pickerView.tag == 0
{
switch row {
case 0:
seletedItemArray = typeLasVegas
case 1:
seletedItemArray = typeLosAnglese
case 2:
seletedItemArray = typeNewYork
default:
seletedItemArray = []
}
Picker2.reloadAllComponents()
cityTextField.text = Cities[row]
Picker1.isHidden = true
Picker2.isHidden = false
}
else if pickerView.tag == 1
{
let item = seletedItemArray[row].0
if seletedItemArray[row] == typeLasVegas[row]
{
typeTextField.text = item
} else if seletedItemArray[row] == typeLosAnglese[row]
{
typeTextField.text = item
}else if seletedItemArray[row] == typeNewYork[row]
{
typeTextField.text = item
}
Picker2.isHidden = true
}
else if pickerView.tag == 2
{
qtyTextField.text = Qt[row].0
Picker3.isHidden = true
}
}
func textFieldShouldBeginEditing(_ textField: UITextField) -> Bool {
if textField == cityTextField
{
self.Picker1.isHidden = false
typeTextField.text = ""
qtyTextField.text = ""
}
else if textField == typeTextField
{
Picker2.isHidden = false
}
else if textField == qtyTextField
{
Picker3.isHidden = false
}
return false
}
func numberOfComponents(in pickerView: UIPickerView) -> Int {
return 1
}
это работает, большое вам спасибо – MikeVamm