gpt4 book ai didi

swift - 动态更改单个聊天气泡的背景颜色

转载 作者:行者123 更新时间:2023-11-30 13:32:47 26 4
gpt4 key购买 nike

我正在尝试动态更改聊天气泡背景。经过大量研究后,我认为这是正确的方法,但它对我不起作用。谁能帮我解决这个问题吗?

我在类名列前茅:

var incomingBubble = JSQMessagesBubbleImageFactory().incomingMessagesBubbleImageWithColor(UIColor(red: 119/255, green: 104/255, blue: 170/255, alpha: 1.0))
let outgoingBubble = JSQMessagesBubbleImageFactory().outgoingMessagesBubbleImageWithColor(UIColor(red: 235/255, green: 63/255, blue: 65/255, alpha: 1.0))
var messages = [JSQMessage]()

我还创建了一个覆盖,我认为可以更改气泡。

override func collectionView(collectionView: JSQMessagesCollectionView!, messageBubbleImageDataForItemAtIndexPath indexPath: NSIndexPath!) -> JSQMessageBubbleImageDataSource! {
let data = messages[indexPath.row]

switch(data.senderId) {
case self.senderId:
return self.outgoingBubble
default:
if(messageStatus == "Some Unique Value") {
return JSQMessagesBubbleImageFactory().incomingMessagesBubbleImageWithColor(UIColor(red: 119/255, green: 204/255, blue: 250/255, alpha: 1.0))
}
return self.incomingBubble
}
}

编辑:将代码更正到可行的位置

最佳答案

您显示的方法是委托(delegate)实现,旨在让您根据每个气泡更改气泡信息,并且它需要在消息数组中有一个相应的对象。

您需要将所有消息对象放在一个数组中,然后当它将它们放置在屏幕上时,它会检查消息来自谁,并相应地以适当的气泡进行响应。如果用户是 .senderId 那么它是一个传出气泡,等等...

您可能缺少的这一点是您需要声明 self.outgoingBubbleself.incomingBubble 是什么。

在类的顶部,您可以将它们声明为常量。

 let outgoingBubble = JSQMessagesBubbleImageFactory().outgoingMessagesBubbleImageWithColor(UIColor(red: 0.07, green: 0.44, blue: 0.62, alpha: 1.0))
let incomingBubble = JSQMessagesBubbleImageFactory().incomingMessagesBubbleImageWithColor(UIColor(red: 0.87, green: 0.87, blue: 0.90, alpha: 1.0))

或者您可以在委托(delegate)方法中自定义它们。

关于swift - 动态更改单个聊天气泡的背景颜色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36391347/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com