我想创建一个聊天,当我点击消息Bubble时,它会说出JSQMessage的文本部分
我使用的代码如下:
public func collectionView(collectionView: JSQMessagesCollectionView, didTapMessageBubbleAtIndexPath indexPath: NSIndexPath) {
let speechUtterance = AVSpeechUtterance(string: messages[indexPath.item].text)
speechSynthesizer.speak(speechUtterance)
}
我遇到的问题是当我点击气泡时,不会调用该函数。
答案 0 :(得分:1)
试试这个,
let synth = AVSpeechSynthesizer()
var myUtterance = AVSpeechUtterance(string: "")
public func collectionView(collectionView: JSQMessagesCollectionView, didTapMessageBubbleAtIndexPath indexPath: NSIndexPath) {
// Make sure you are actually getting the text in messages[indexPath.item].text
myUtterance = AVSpeechUtterance(string: messages[indexPath.item].text)
myUtterance.rate = 0.3
synth.speakUtterance(myUtterance)
}
现在,对于您的问题,请检查您是否可能不会写cellForItemAtIndexPath
。这会阻止didTapMessageBubbleAtIndexPath
致电。