Vai al contenuto

Benvenuto nella community di Italiamac Forum

Guest Image

Benvenuto su Italiamac, la più grande comunità AMUG italiana riconosciuta da Apple. La consultazione è libera. Se vuoi anche partecipare attivamente alle discussioni pubblicando post e messaggi puoi iscriverti gratuitamente, avrai molti vantaggi:

  • Pubblicare post, messaggi e richieste di aiuto
  • Fare amicizia e usare i messaggi privati fra utenti
  • Pubblicare annunci di vendita di usato
  • Usare tutte le funzioni della community

ISCRIVITI GRATIS


Change Mode






[Risolto] Datepicker Con Label


Recommended Posts

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)"

    

    }

    }

 
Modificato da elvetico
Link di questo messaggio
Condividi su altri siti

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

        

    }

}

Modificato da elvetico
Link di questo messaggio
Condividi su altri siti

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?

Modificato da elvetico
Link di questo messaggio
Condividi su altri siti

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 di questo messaggio
Condividi su altri siti

Rispondi e partecipa alla discusione

Puoi rispondere subito e iscriverti successivamente. If you have an account, sign in now to post with your account.

Ospite
Rispondi a questa discussione...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Crea Nuovo...

Info

Questo sito utilizza cookies, anche di terze parti e profilazione. Utilizzando il sito acconsenti al loro impiego e dichiari di aver letto e di accettare: Privacy Policy Termini di utilizzo