Я использую JSQMessagesViewController для реализации чата. Я добавил кнопку записи и хочу отправить аудио сообщения, удерживая эту кнопку нажатой, чтобы записать и остановить запись, отпустив кнопку. В настоящее время я пытаюсь сделать это следующим образом:Событие TouchDown UIbutton для записи Аудио не запускается из-за Collectionview
record_button = UIButton(type: UIButtonType.custom)
record_button.tintColor = UIColor.white
record_button.setImage(recordImage, for: .normal)
self.recordingSession = AVAudioSession.sharedInstance()
do {
try self.recordingSession.setCategory(AVAudioSessionCategoryPlayAndRecord)
try self.recordingSession.setActive(true)
self.recordingSession.requestRecordPermission() { [unowned self] allowed in
DispatchQueue.main.async {
if allowed {
self.record_button.addTarget(self, action: #selector(ChatViewController.recording), for: .touchDown)
self.record_button.addTarget(self, action: #selector(ChatViewController.recordTapRelease), for: .touchUpInside)
self.record_button.addTarget(self, action: #selector(ChatViewController.recordTapRelease), for: .touchDragExit)
} else {
// failed to record!
}
}
}
} catch {
// failed to record!
}
К сожалению, это не работает правильно. Он работает только тогда, когда я нажимаю кнопку вверх. Только тогда он распознает событие и записи. Когда я касаюсь и держусь в том же месте, он не записывается, и когда я отпускаю прикосновение, он отправляет звуковое сообщение в течение 1 секунды.
EDIT я понял, что проблема моя CollectionView которая имеет Scrollview. Функция scrollview задерживает событие приземления, чтобы проверить, прокручивается ли пользователь. Как я могу спровоцировать событие приземления?
Пробовал это раньше и не имел никакого успеха. –
Ну, мне понравилось это в моем проекте, и это работает :) не может открыть полные источники. – Mikael
Проблема для меня - это контроллер scrollView. Проверьте мое редактирование. –