如何将自定义视图添加到 JSQMessagesViewController 单元格,以便它包含一个带有一些按钮和文本视图的视图?

How to add custom view to JSQMessagesViewController cell so that it includes one view with some buttons and text view?

我正在使用 https://github.com/jessesquires/JSQMessagesViewController/issues/1820 这个用于聊天应用程序的库。通过使用这个库,我可以发送图像和视频,但我的应用程序需要发送一个带有一些按钮和文本的视图。就像当用户发送一些文本时,它会以文本和按钮的形式出现在其他人面前,然后当有人单击按钮时,将生成一个推送通知。我无法弄清楚如何实现这一目标。

这是我希望自定义视图的屏幕截图。它有一些用户输入的文本,并有 2 个按钮用于接受和拒绝。

我建议您为此创建自己的自定义视图。您可以使用 JSQIncomingCollectionViewCell.xibJSQOutgoingCollectionViewCell.xib 作为您自己的模板。

  1. 从示例项目中复制它们并将它们粘贴到您自己的项目中
  2. 将文件重命名为其他名称,例如 CellWithConfimationButtons
  3. 在您的 ChatViewController 中,即您所说的视图是 'JSQMessagesViewController' 的子类。添加这两行

    self.collectionView.registerNib(UINib(nibName: "CellWithConfimationButtons", bundle: nil), forCellWithReuseIdentifier: "incomingCell") self.collectionView.registerNib(UINib(nibName: "CellWithConfimationButtons", bundle: nil), forCellWithReuseIdentifier: "outgoingCell")

  4. 现在您可以将按钮添加到 xib 文件中

  5. 添加约束以使其正确放置。

  6. 为这些设置你的图像,然后你需要制作支持这个人的文件。就像 JSQMessagesCollectionViewCellOutgoing.mJSQMessagesCollectionViewCellOutgoing.h 然后您需要为按钮添加 IBOutlets 并在该文件中添加操作和逻辑

然后你需要设置一个标志或某种方式来确定消息是这种带有按钮的消息。

  1. 然后在你的 collectionView(collectionView: UICollectionView, cellForItemAtIndexPath indexPath: NSIndexPath)

你检查那个标志并得到你的手机

if message.flag == true let cell = collectionView.dequeableCellWithIdentifier("incomingCell")

然后设置一切。

希望对您有所帮助。如果我能提供更多帮助,请告诉我。