2017-10-05 6 views
1

중간에 맞춤 설정할 수있는 진동으로 앱을 만들고 있습니다. 0-50의 번호가 매겨진 슬라이더가 있습니다. 가장 가까운 정수로 반올림 한 다음 내 레이블에 표시합니다. 지금은 명령을 실행하려고 :대기 명령에 레이블 값을 어떻게 추가합니까?

또한
@IBOutlet weak var amount: UILabel! 

@IBAction func slider1(_ sender: UISlider) { 

    amount.text = String(Int(sender.value)); 

} 

@IBAction func vibrator(_ sender: UISlider) { 

    AudioServicesPlaySystemSound(kSystemSoundID_Vibrate) 

    (the wait goes here but I don't know how to add it) 
} 

내가 10 에 의해 라벨 값을 나눌 대기 명령 가능한 경우는 특히 대기 명령, 뭔가가 지연 될 필요가 없습니다 그것.

미리 감사드립니다.

DispatchTime.now() + 1.0 

1.0이 시간 :

+0

'DispatchQueue.main.asyncAfter'는 지정된 시간 후에 실행할 수있는 블록을 허용합니다. 슬라이더 값을 가져 와서 전달합니다. 작은 단계로 달성하고자하는 것을 깨뜨릴 수 있다면 도움이 될 것입니다. – user1046037

+0

그러면 어떻게 입력 할 수 있습니까? –

+0

더 나은 이해를 돕기 위해 문서를 읽으십시오. – user1046037

답변

1

이이 할 수있는 최선의 방법입니다 : 시간의 양이 여기에 선언 한 후이 예에서

DispatchQueue.main.asyncAfter(deadline: DispatchTime.now() + 1.0) { 
    // this runs after a 1.0 second wait. 
} 

은 함수 내부의 코드가 실행 본질적으로 기다릴 초. 나는 당신이 말한 것과 가정 해요, 당신은에 코드의 비트를 변경할 수 있습니다 :

DispatchTime.now() + (Int(amount.text)!/10) 

을 나는 이것이 당신이 찾고 있던 답 희망!

+0

알았어요. 정확히했습니다. 이제 "선택 유형의 값 '문자열입니까?'라고 말합니다. unwrapped되지 않았습니까? '!' 또는 '?'? " 그리고 그것은 "text"라는 단어에서 "t"를 강조하고 있습니다. –

+0

오 그래, 그것을 변경하십시오 :'DispatchTime.now() + (Int (amount.text!)!/10)', 작동합니다. –

+0

지금, 그것은 말한다. "이진 연산자 '+'는 'DispatchTime'및 'Int'유형의 피연산자에 적용될 수 없습니다."지금 어떻게합니까? –