gpt4 book ai didi

ios - 如何在 JSQMessagesViewController 中使消息气泡居中

转载 作者:可可西里 更新时间:2023-11-01 02:18:47 26 4
gpt4 key购买 nike

我的目标是在 JSQMessagesViewController 中有一个“旁白”消息。我希望此消息位于屏幕中央。我试图通过将消息气泡容器(包含气泡和文本)居中来使消息居中。这是我的代码:

class MessagesViewController: JSQMessagesViewController

override func collectionView(collectionView: UICollectionView, cellForItemAtIndexPath indexPath: NSIndexPath) -> UICollectionViewCell {

let cell = super.collectionView(collectionView, cellForItemAtIndexPath: indexPath) as! JSQMessagesCollectionViewCell
let message = messages[indexPath.row]

// Sent message
if message.senderId() == self.senderId {
// Normal outgoing message

}
// Narration Message
else if message.senderId() == Constants.lbSenderName {
cell.textView?.textAlignment = NSTextAlignment.Center

// new frame -- isn't changing the frame.
let newX = (cell.frame.width - (cell.messageBubbleContainerView?.frame.width)!)/2.0
cell.messageBubbleContainerView?.frame = CGRectMake(
newX,
(cell.messageBubbleContainerView?.frame.minY)!,
(cell.messageBubbleContainerView?.frame.width)!,
(cell.messageBubbleContainerView?.frame.height)!
)
}
// Received message
else {
// Normal incoming message
}

return cell
}

}

细胞根本没有像我预期的那样移动。我试过使用

cell.messageBubbleContainerView?.translatesAutoresizingMaskIntoConstraints = true

但它会使气泡消失。感谢任何建议,无论是像我正在做的那样手动更改布局,还是我可以通过 JSQMessagesViewController 使用的东西。

我希望它看起来像这样:Narration Messages

最佳答案

图书馆目前不支持此功能。您上面的代码没有更改任何内容,因为这些更改会立即被库覆盖。

目前唯一想要实现的是提供您自己的单元格子类。您可以使用 Collection View 注册您的单元格,然后设置 incomingoutgoing 单元格标识符属性。

相关文档:http://cocoadocs.org/docsets/JSQMessagesViewController/7.2.0/Classes/JSQMessagesViewController.html

关于ios - 如何在 JSQMessagesViewController 中使消息气泡居中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33324384/

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