我想创建一个聊天,当我点击消息气泡时,它会说出 JSQMessage 的文本部分
我使用的代码如下:
public func collectionView(collectionView: JSQMessagesCollectionView, didTapMessageBubbleAtIndexPath indexPath: NSIndexPath) {
let speechUtterance = AVSpeechUtterance(string: messages[indexPath.item].text)
speechSynthesizer.speak(speechUtterance)
}
我面临的问题是当我点击气泡时该函数没有被调用。
最佳答案
试试这个,
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
调用。
关于ios - 如何使用 JSQMessageViewController 的 didTapMessageBubbleAtIndexPath 函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44132598/