elvetico Inviato 15 Aprile 2016 Segnala Condividi Inviato 15 Aprile 2016 Ciao a tutti, sto provando a realizzare un app usando il DatePicker in pratica tramite il DatePicker scelgo una data, che appare in una Label1, vengono aggiunti tot anni e mesi, e nella Label 2 dovrebbe apparire il totale Il problema è che non riesco a far apparire il totale qualche suggerimento? dove sbaglio? Questo è il codice usato: class ViewController: UIViewController { @IBOutlet weak var dateLabel: UILabel! @IBOutlet weak var resultLabel: UILabel! @IBOutlet weak var datePicker: UIDatePicker! override func viewDidLoad() { super.viewDidLoad() // Do any additional setup after loading the view, typically from a nib. datePicker.addTarget(self, action: #selector(ViewController.datePickerChanged(_ ), forControlEvents: UIControlEvents.ValueChanged) } override func didReceiveMemoryWarning() { super.didReceiveMemoryWarning() // Dispose of any resources that can be recreated. } func datePickerChanged(datePicker:UIDatePicker) { let dateFormatter = NSDateFormatter() dateFormatter.dateStyle = NSDateFormatterStyle.LongStyle let strDate = dateFormatter.stringFromDate(datePicker.date) dateLabel.text = strDate } func resultLabel(sender: AnyObject){ let dateFormatter = NSDateFormatter() dateFormatter.dateStyle = NSDateFormatterStyle.LongStyle let stoDate = dateFormatter.stringFromDate(datePicker.date) resultLabel.text = stoDate let yearsToAdd = 2 let monthToAdd = 5 var calculatedDate = NSCalendar.currentCalendar().dateByAddingUnit(NSCalendarUnit.Year, value: yearsToAdd, toDate: datePicker.date, options: NSCalendarOptions.init(rawValue: 0)) calculatedDate = NSCalendar.currentCalendar().dateByAddingUnit(NSCalendarUnit.Month, value: monthToAdd, toDate: calculatedDate!, options: NSCalendarOptions.init(rawValue: 0)) resultLabel.text = "\(dateLabel.text)" + "\(datePicker.date)" } } Link al commento Condividi su altri siti Altre opzioni di condivisione...
elvetico Inviato 16 Aprile 2016 Autore Segnala Condividi Inviato 16 Aprile 2016 ho modificato il codice sopra in questo modo: in questo modo nella resultLabel riesco vedere la stessa data impostata nella textField tramite il DatePicker, ma non riesco a sommare:anni,mesi,giorni (la faccina che si vede in realtà sono due punti parentesi chiusa) Grazie @IBOutlet weak var dateText: UITextField! @IBOutlet weak var datePick: UIDatePicker! @IBOutlet weak var resultLabel: UILabel! override func viewDidLoad() { super.viewDidLoad() // Do any additional setup after loading the view, typically from a nib. datePick.addTarget(self, action: #selector(ViewController.datePickerChanged(_ ), forControlEvents: UIControlEvents.ValueChanged) } override func didReceiveMemoryWarning() { super.didReceiveMemoryWarning() // Dispose of any resources that can be recreated. } func datePickerChanged(datePicker:UIDatePicker) { let dateFormatter = NSDateFormatter() dateFormatter.locale = NSLocale.currentLocale() dateFormatter.locale = NSLocale(localeIdentifier: "it_IT") dateFormatter.dateStyle = NSDateFormatterStyle.LongStyle let strDate = dateFormatter.stringFromDate(datePick.date) let currentDate = NSDate() let yearsToAdd = 10 let monthsToAdd = 2 let daysToAdd = 5 // Method #1 var calculatedDate = NSCalendar.currentCalendar().dateByAddingUnit(NSCalendarUnit.Year, value: yearsToAdd, toDate: currentDate, options: NSCalendarOptions.init(rawValue: 0)) calculatedDate = NSCalendar.currentCalendar().dateByAddingUnit(NSCalendarUnit.Month, value: monthsToAdd, toDate: currentDate, options: NSCalendarOptions.init(rawValue: 0)) calculatedDate = NSCalendar.currentCalendar().dateByAddingUnit(NSCalendarUnit.Day, value: daysToAdd, toDate: calculatedDate!, options: NSCalendarOptions.init(rawValue: 0)) dateText.text = strDate resultLabel.text = strDate } } Link al commento Condividi su altri siti Altre opzioni di condivisione...
elvetico Inviato 17 Aprile 2016 Autore Segnala Condividi Inviato 17 Aprile 2016 Allora sono riuscito a sistemare parzialmente la cosa in questo modo: (ho cambiate il textField con una Label ma funziona lo stesso) func datePickerChanged(datePicker:UIDatePicker) { let currentDate = NSDate() let dateFormatter = NSDateFormatter() dateFormatter.locale = NSLocale.currentLocale() dateFormatter.locale = NSLocale(localeIdentifier: "it_IT") dateFormatter.dateStyle = NSDateFormatterStyle.LongStyle let strDate = dateFormatter.stringFromDate(datePick.date) dateLabel.text = strDate let yearsToAdd = 10 let monthsToAdd = 2 var calculatedDate = NSCalendar.currentCalendar().dateByAddingUnit(NSCalendarUnit.Year, value: yearsToAdd, toDate: currentDate, options: NSCalendarOptions.init(rawValue: 0)) calculatedDate = NSCalendar.currentCalendar().dateByAddingUnit(NSCalendarUnit.Month, value: monthsToAdd, toDate: currentDate, options: NSCalendarOptions.init(rawValue: 0)) let resultDate = dateFormatter.stringFromDate(calculatedDate!) dateFormatter.dateStyle = NSDateFormatterStyle.LongStyle resultLabel.text = resultDate } } ora pero se inserisco una data cambia solo il giorno, mentre l'anno rimane sempre sul 2016,e se provo a impostare un'altra data cambia solo la data che imposto e non l'altra Dove sbaglio? Qualcuno che mi aiuta? Link al commento Condividi su altri siti Altre opzioni di condivisione...
elvetico Inviato 18 Aprile 2016 Autore Segnala Condividi Inviato 18 Aprile 2016 Ho cambiato il metodo var calculatedDate con un altro e sta funzionando ma avrei un altro quesito: Vorrei inserire date diverse in 2 textField, diversi usando un solo DatePicker, ho gia provato ad aggiungere 2 TextField ma in entrambi mi mette la stessa data Help me!! Link al commento Condividi su altri siti Altre opzioni di condivisione...
Messaggi raccomandati
Archiviato
Questa discussione è archiviata e chiusa a future risposte.