Swift 如何在MessageKit中设置messageViewController的偏移量?

Swift 如何在MessageKit中设置messageViewController的偏移量?,swift,uiviewcontroller,chat,messagekit,Swift,Uiviewcontroller,Chat,Messagekit,Messagekit的我的messageViewController正在显示这样的消息,如何设置在导航栏下方显示的消息偏移量 我的messageViewController布局代码 func configureView(){ scrollsToBottomOnKeyboardBeginsEditing = true // default false maintainPositionOnKeyboardFrameChanged = true // default false

Messagekit的我的messageViewController正在显示这样的消息,如何设置在导航栏下方显示的消息偏移量

我的messageViewController布局代码

 func configureView(){

    scrollsToBottomOnKeyboardBeginsEditing = true // default false
    maintainPositionOnKeyboardFrameChanged = true // default false

let layout = messagesCollectionView.collectionViewLayout as? MessagesCollectionViewFlowLayout
layout?.sectionInset = UIEdgeInsets(top: 1, left: 8, bottom: 1, right: 8)

// Hide the outgoing avatar and adjust the label alignment to line up with the messages
layout?.setMessageOutgoingAvatarSize(.zero)
layout?.setMessageOutgoingMessageTopLabelAlignment(LabelAlignment(textAlignment: .right, textInsets: UIEdgeInsets(top: 0, left: 0, bottom: 0, right: 8)))
layout?.setMessageOutgoingMessageBottomLabelAlignment(LabelAlignment(textAlignment: .right, textInsets: UIEdgeInsets(top: 0, left: 0, bottom: 0, right: 8)))

// Set outgoing avatar to overlap with the message bubble
layout?.setMessageIncomingMessageTopLabelAlignment(LabelAlignment(textAlignment: .left, textInsets: UIEdgeInsets(top: 0, left: 18, bottom: outgoingAvatarOverlap, right: 0)))
layout?.setMessageIncomingAvatarSize(CGSize(width: 30, height: 30))
layout?.setMessageIncomingMessagePadding(UIEdgeInsets(top: -outgoingAvatarOverlap, left: -18, bottom: outgoingAvatarOverlap, right: 18))

layout?.setMessageIncomingAccessoryViewSize(CGSize(width: 30, height: 30))
layout?.setMessageIncomingAccessoryViewPadding(HorizontalEdgeInsets(left: 8, right: 0))
layout?.setMessageIncomingAccessoryViewPosition(.messageBottom)
layout?.setMessageOutgoingAccessoryViewSize(CGSize(width: 30, height: 30))
layout?.setMessageOutgoingAccessoryViewPadding(HorizontalEdgeInsets(left: 0, right: 8))

messagesCollectionView.messagesLayoutDelegate = self
messagesCollectionView.messagesDisplayDelegate = self
}
如果我隐藏导航栏,它会像这样显示


将内容插入填充添加到messagesCollectionView

override func viewDidLoad() {
    super.viewDidLoad()

   self.messagesCollectionView.contentInset = UIEdgeInsets(top: 70, left: 0, bottom: 70, right: 0)
}

将内容插入填充添加到messagesCollectionView

override func viewDidLoad() {
    super.viewDidLoad()

   self.messagesCollectionView.contentInset = UIEdgeInsets(top: 70, left: 0, bottom: 70, right: 0)
}

您正在使用IQKeyboardManager吗

如果是这样,您只需在
AppDelegate
didFinishLaunchingWithOptions
中添加此选项即可解决此问题:

IQKeyboardManager.shared.DisabledInstanceHandlingClasses.append(YourChatVC.self)


您正在使用IQKeyboardManager吗

如果是这样,您只需在
AppDelegate
didFinishLaunchingWithOptions
中添加此选项即可解决此问题:

IQKeyboardManager.shared.DisabledInstanceHandlingClasses.append(YourChatVC.self)


我已经做了,它不起作用了。。。。完成此操作后,最初的消息位于导航栏后面,但当我滚动时,它会从导航栏设置为70pt…然后您可以使用容器视图并将其扩展为消息视图控制器。您可以指导我如何执行此操作吗?我已经完成了,它不起作用。。。。执行此操作后,最初消息位于导航栏后面,但当我滚动时,它会从导航栏设置为70pt…然后您可以使用容器视图并将其扩展为messageviewcontrollercan您可以指导我如何执行此操作吗?尝试在
viewDidLayoutSubviews()中为
messagesCollectionView
设置
contentInset
self.messagescolectionview.contentInset=uiedgeinset(顶部:70,左侧:0,底部:70,右侧:0)
尝试在
viewdilayoutsubview()中为
messagescolectionview
设置
contentInset
self.messagescolectionview.contentInset=uiedgeinset(顶部:70,左侧:0,底部:70,右侧:0)
似乎这就是解决方案:)。。。。非常感谢。。每当我再次实现它时,我肯定会尝试这个(Y)看起来这可能是解决方案:)。。。。非常感谢。。每当我再次执行此操作时,我肯定会尝试此操作(Y)