如何使用JSQMessageViewController的didTapMessageBubbleAtIndexPath函数

时间:2017-05-23 10:45:11

标签: ios swift jsqmessagesviewcontroller

我想创建一个聊天,当我点击消息Bubble时,它会说出JSQMessage的文本部分

我使用的代码如下:

public func collectionView(collectionView: JSQMessagesCollectionView, didTapMessageBubbleAtIndexPath indexPath: NSIndexPath) {


    let speechUtterance = AVSpeechUtterance(string: messages[indexPath.item].text)

    speechSynthesizer.speak(speechUtterance)


}

我遇到的问题是当我点击气泡时,不会调用该函数。

1 个答案:

答案 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致电。