Я создаю приложение, которое может переводить буквы в строке в шаблон вибрации. Вот что у меня есть:
@IBAction func translateButtonTapped(_ sender: UIButton) {
guard CHHapticEngine.capabilitiesForHardware().supportsHaptics else {return}
let Bz1 = CHHapticEvent(eventType: .hapticContinuous, parameters: [], relativeTime: 0.0, duration: 0.1)
let Bz2 = CHHapticEvent(eventType: .hapticContinuous, parameters: [], relativeTime: 0.3, duration: 0.1)
let Bzz1 = CHHapticEvent(eventType: .hapticContinuous, parameters: [], relativeTime: 0.0, duration: 0.25)
let dictionary = [
"A" : [Bzz1],
"T" : [Bz1, Bz2],
]
let message = detectedTextLabel.text
//text box where string is written
let letterArray = message!.map { String($0) }
for singleWord in letterArray {
let word = String(singleWord)
if let vibrationArray = dictionary[word] {
do {
for Word in vibrationArray {
let encodedMessage = try CHHapticPattern(events: [Word], parameters: [])
let player = try engine?.makePlayer(with: encodedMessage)
try player?.start(atTime: 0)
}
} catch {
print("there was an error")
}
} else {
print("There was an error")
}
}
Пока этот код работает, если я набираю единичные буквы в текстовом поле. Однако, например, если я наберу «AT» в текстовом поле, вместо вибраций, воспроизводимых одна за другой, они оба будут воспроизводиться одновременно. Есть ли способ поместить некоторую задержку или паузу между шаблоном первой буквы и шаблоном второй буквы?