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

Posted

技术标签:

【中文标题】如何将自定义视图添加到 JSQMessagesViewController 单元格,以便它包含一个带有一些按钮和文本视图的视图?【英文标题】:How to add custom view to JSQMessagesViewController cell so that it includes one view with some buttons and text view? 【发布时间】:2016-09-07 14:48:42 【问题描述】:

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

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

【问题讨论】:

您能否显示您希望自定义视图外观的屏幕截图? @Shubhank 添加截图 github.com/jessesquires/JSQMessagesViewController/blob/develop/… 这似乎提供了有关提供自定义单元格类型的信息 @Shubhank 感谢此链接。你能帮我解决第3点吗? 【参考方案1】:

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

    从示例项目中复制它们并将它们粘贴到您自己的项目中 将文件重命名为 CellWithConfimationButtons 之类的其他名称

    在您的 ChatViewController 中,即您所称的视图是“JSQMessagesViewController”的子类。添加这两行

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

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

    添加约束以使其正确显示。

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

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

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

你检查那个标志并得到你的单元格

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

然后设置一切。

我希望这会有所帮助。让我知道我是否可以提供更多帮助。 ?

【讨论】:

我正在遵循这个程序,它很有帮助,但是有一个主要问题,当我滚动时,所有以前的单元格都会被替换 我按照步骤操作,传入的气泡就消失了。有什么想法吗? 您需要添加您的代码,我才能进行任何评估。

以上是关于如何将自定义视图添加到 JSQMessagesViewController 单元格,以便它包含一个带有一些按钮和文本视图的视图?的主要内容,如果未能解决你的问题,请参考以下文章

如何以编程方式将自定义 uiview 添加到视图控制器 SWIFT

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

如何将自定义视图添加到 iOS VoiceOver 转子?

如何使用 drupal 6 中的自定义字段将自定义版本的节点/添加表单放在视图中?

如何将 UIView 添加到 CALayer

将自定义 UIView 添加到 TableViewCell