2017-04-13 1 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의 값을 설정한다는 것을 알 수있다. 이 timeAmount 값은 로컬 통보에서 시간으로 사용됩니다.

문제는 datePicker.countDownDuration이 정확하지 않다는 것입니다. 1 분 동안 설정되면 timeAmount는 99 초, 62 초, 67 초 등의 값을 반환 할 수 있습니다. 이것은 완전히 무작위입니다.

아마도 내가 읽은 모든 항목에서 .countDownDuration 기능이 작동하는 방식을 완전히 이해하지 못했을 수 있습니다.이 값은 60 초가되어야합니다.

문제에 대한 의견이나 제안은 언제나 감사하겠습니다. 감사합니다.

답변

2

기본적으로 UIDatePicker는 현재 초 단위로 값을 취합니다. 예를 들어

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

: 현재 시간이 13시 40분 25초 (오후 1시 40분 25초)이며 날짜 선택에서 1 분 선택한 경우
가,이 경우 TIMEAMOUNT의 값이 .

timeAmount = (1*60) + 25

이렇게하면 문제가 해결됩니다.

  1. 스토리 보드로 이동하여 UIDatapicker를 선택하십시오. Attributes inspector에서 Date 옵션으로 이동하십시오. enter image description here

  2. 는 드롭 다운을 클릭하고 현재 날짜에서 사용자로 변경. enter image description here

  3. 현재 날짜가 사용자 정의 날짜 인 새 텍스트 필드가 표시됩니다. enter image description here

  4. 그냥 지금 두 번째 필드에 00 enter image description here

  5. 실행 응용 프로그램을 변경합니다. 이제 초의 값으로 0이 걸리고 날짜 선택 도구에서 선택한 시간을 기준으로 초 값을 올바르게 볼 수 있습니다.

희망이 있으면 문제가 해결 될 것입니다.

+0

환상적인 답변, 정말 고마워요. – imjonu