首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >当JSQMessagesViewController没有显示消息时,如何显示自定义文本?

当JSQMessagesViewController没有显示消息时,如何显示自定义文本?
EN

Stack Overflow用户
提问于 2015-06-16 03:01:00
回答 2查看 858关注 0票数 1

当我使用JSQMessagesViewController加载消息视图时,很多时候没有消息,所以我想在视图的中间或顶部显示一条“尚未显示消息”消息。

我该怎么做呢?

谢谢

EN

回答 2

Stack Overflow用户

发布于 2015-07-03 03:02:08

可以有其他更简单的方法来做到这一点,比如黑客攻击集合视图的子视图或其他任何东西,但最终,我认为你会想要实现系统消息,这需要一些时间才能正确,但对于你提到的情况和许多其他你仍然不知道但会以你的方式出现的情况,肯定会派上用场。

我使用的是C# Xamarin移植版的库,但概念是相似的。你可以这样做:

  • in ViewDidLoad,检索到消息后,请检查消息数组项目数是否为零,然后将一个JSQMessage添加到消息数组中,并将'System‘作为SenderDisplayName和要作为消息文本的一部分显示的友好消息。
  • in MessageBubbleImageDataForItemAtIndexPath会检查SenderDisplayName='System’的消息,并返回null,这样您就不会得到消息气泡。
  • 复制JSQMessagesCollectionViewCellIncoming.xib及其自定义类,并将JSQMessagesCollectionView中的自定义单元格类型重命名为类似于null的名称:

JSQMessagesCollectionViewCell中的this.RegisterNibForCell(JSQMessagesCollectionViewCellActions.Nib("JSQMessagesCollectionViewCellActions"),JSQMessagesCollectionViewCellActions.CellReuseIdentifier("JSQMessagesCollectionViewCellActions"));this.RegisterNibForCell(JSQMessagesCollectionViewCellActions.Nib("JSQMessagesCollectionViewCellActions"),JSQMessagesCollectionViewCellActions.MediaCellReuseIdentifier("JSQMessagesCollectionViewCellActions"));

  • in ApplyLayoutAttributes方法为JSQMessagesCollectionViewCellSystem类型的单元格返回CGSizeMake(0,0)。如下所示:

if (this.IsKindOfClass (new ObjCRuntime.Class (“JSQMessagesCollectionViewCellIncoming”){ this.AvatarViewSize = customAttributes.IncomingAvatarViewSize;} else if (this.IsKindOfClass (new ObjCRuntime.Class (“JSQMessagesCollectionViewCellOutgoing”){ this.AvatarViewSize = customAttributes.OutgoingAvatarViewSize;} else { this.AvatarViewSize = new CGSize (0,0);}

  • in CellForRowAtIndexPath inside JSQMessagesViewController您可以这样做以使消息居中:

if (messageItem.SenderId == "System") { cell.TextView.TextAlignment = UITextAlignment.Center;cell.TextView.TextColor = UIColor.LightGray;cell.MessageBubbleContainerWidthConstraint.Constant = UIScreen.MainScreen.Bounds.Width - 25;}

票数 1
EN

Stack Overflow用户

发布于 2015-07-03 03:10:07

您可以使用MBProgressHUB框架,它可以非常简单地完成您的任务。有一个链接https://github.com/jdg/MBProgressHUD

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30853010

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档