如何在 MessageKit 中设置消息气泡的最大宽度

How to set maximum width of message bubbles in MessageKit

我一直在使用 MessageKit 为我的应用程序提供实时聊天功能。我 运行 遇到的问题之一是长消息在屏幕上看起来很奇怪,因为气泡的宽度似乎没有受到限制。我想找出一种方法来设置聊天气泡的最大宽度,使它们的格式更像本机 imessage 应用程序上的文本对话。

目前我的消息看起来像这样,但我希望下面的消息不那么宽和高:

您使用的库似乎已经设置了宽度,但在我的聊天(自定义)中我有 a greater than or equal than 0 width constraint 一个 a less than or equal than MAX_WIDTH constraint 一个 leading constraint = 0 和一个'trailing constraint = 0' 和最后两个我摆脱了 leadingtrailing 取决于它是消息的发送者还是接收者。

您可以分别调整 incoming/outgoing 条消息的 right/left 填充。

默认填充为:

public var incomingMessagePadding = UIEdgeInsets(top: 0, left: 4, bottom: 0, right: 30)
public var outgoingMessagePadding = UIEdgeInsets(top: 0, left: 30, bottom: 0, right: 4)

并且您可以像这样在消息视图控制器中的布局对象上设置填充:

let layout = messagesCollectionView.collectionViewLayout as? MessagesCollectionViewFlowLayout
layout?.setMessageIncomingMessagePadding(UIEdgeInsets(top: 0, left: 4, bottom: 0, right: 50))
layout?.setMessageOutgoingMessagePadding(UIEdgeInsets(top: 0, left: 60, bottom: 0, right: 4))

您可以在 AdvancedExampleViewController 中查看更多布局更改示例in the MessageKit example project.