2017-04-13 45 views
0

我當前的項目是一個計時器,它使用日期選擇器來設置用戶在定時器關閉之前想要的時間量(比如1分鐘,6小時和2分鐘等)。問題在於日期選擇器相信已設置的時間量。以下是我用來設置時間的代碼。奇怪的日期選擇器行爲Xcode,swift 3

@IBOutlet weak var datePicker: UIDatePicker! 

var timeAmount:Double = 0 

@IBAction func startButton() { 
    timeAmount = Double(datePicker.countDownDuration) 
    let trigger = UNTimeIntervalNotificationTrigger(timeInterval: timeAmount, repeats: false) 
} 

這裏可以看出,功能startButton,設置共收取TIMEAMOUNT的值成爲其中的日期選取器被設置爲時間量。這個時間Amount值然後在本地通知中用作時間。

問題是datePicker.countDownDuration從不正確。如果它設置爲一分鐘,那麼timeAmount可能會返回99秒,62秒,67秒等值。它完全是隨機的。

也許我不完全瞭解.countDownDuration功能是如何工作的,但是從我讀過的所有東西中,這應該會返回60秒的值。

對此事的任何想法和建議將非常感謝,謝謝。

回答

2

默認情況下,UIDatePicker將採用當前的第二個值進行計算。

timeAmount = (number of minutes selected in picker * 60) + current time second value.

例如:
如果當前時間是13時40分25秒(01:0040分鐘25秒)並且已經選擇了日期選取一分鐘共收取TIMEAMOUNT的這種情況下的值是。

timeAmount = (1*60) + 25

這將解決您的問題。

  1. 轉到故事板並選擇UIDatapicker。在屬性檢查器中導航到日期選項。 enter image description here

  2. 單擊下拉並從當前日期更改爲定製enter image description here

  3. 您將看到一個新的文本字段,其中當前時間爲自定義日期。 enter image description here

  4. 只要改變第二場爲00 enter image description here

  5. 運行應用程序了。現在它將以秒爲值,並且您將能夠根據您在日期選擇器中選擇的時間正確地看到秒值。

希望這能解決您的問題。

+0

非常棒的答案,非常感謝。 – imjonu