0

我正在尝试在messagesCollectionView 之上添加一个UIView,但是collectionview 似乎占据了整个屏幕,使得我想要添加的UIView 无法被看到。我在这里查看他们的文档:https ://github.com/MessageKit/MessageKit/blob/master/Sources/Layout/MessagesCollectionViewFlowLayout.swift

我的想法是改变布局委托中的一些东西,但我不确定要改变什么以及在哪里改变......对此的任何想法将不胜感激!

谢谢!

4

1 回答 1

1

如果您想在 messagesCollectionView 上方有某种浮动视图,那么您可以将其作为子视图添加到MessagesViewControler'sview中,只需确保在调用super.viewDidLoad()执行此操作,因为 MessageKit 将 collectionView 添加为子视图,所以如果您在此之前添加它,那么您的视图将位于 collectionView 后面并且不会出现。为了防止单元格与您的视图重叠,messagesCollectionView.contentInset如果您的视图浮动在那里,您可以使用属性将填充添加到顶部或底部,以便用户仍然可以滚动到所有消息。像这样的东西:

    override func viewDidLoad() {
        super.viewDidLoad()
        let subview = UIView()
        view.addSubview(subview)
        // Either add constraints or set the frame manually
        // ...
        // Set the contentInset if you want to prevent the messages from overlapping your view
        messagesCollectionView.contentInset.top = 10 // For example, if your view was stickied to the top and was height 10px
    }

您可以采用的另一条路线是拥有一个父视图控制器,您可以在其中将MessagesViewController作为子 VC 添加到父级,然后按照您的需要调整和布局 messagesCollectionView。您可以在 MessageKit 示例应用程序的 MessageContainerController 类中看到这样的示例:https ://github.com/MessageKit/MessageKit/blob/master/Example/Sources/View%20Controllers/MessageContainerController.swift

于 2020-07-21T19:58:37.673 回答