我有一个应用程序,允许用户互相发送消息。这个过程是通过将已发送的消息保存在本地SQLite数据库中完成的,同时将实际发送的消息发送到数据库并使用推送通知将消息发送到接收者的SQLite数据库中。我现在的设置可以正常工作。然而,我困惑的是如何为用户设置实际的交互式UI(我正在使用XCode)。我认为它应该是一个UITableView,每个表格单元格代表一条消息。但是,采用这种方法会遇到一些要求:
可变文本视图大小
与普通的iOS消息一样,TextView的大小需要是可变的,根据每个消息中的所有文本来调整其尺寸。我不知道如何做到这一点。我大致了解如何一般地改变大小,但不知道如何动态地基于该视图内的文本进行调整。
可变文本视图位置
同样,就像普通的iOS消息一样,文本视图需要根据发送方或对话方向左或右偏移。我也不知道如何做到这一点,因为它会改变文本视图的中心。
不可选择性
Xcode允许单元格被按下。处理此选择后发生的事情可以通过didSelectRowatIndexPath tableView函数实现。我可以简单地不实现它,但是单击单元格会使其变暗,以指示已被按下。我想消除这一点,同时保留选择文本并复制粘贴等功能(就像手机上的消息一样)
其他方法?
这才是问题的真正核心。我考虑了上述方法,因为这是我在有限的XCode UI元素经验基础上能想到的全部。如果有更好的方法(甚至是一个pod或框架)来实现此目的,我很乐意听取建议。我不需要消息UI看起来惊人,只要干净利落即可。
可变文本视图大小
与普通的iOS消息一样,TextView的大小需要是可变的,根据每个消息中的所有文本来调整其尺寸。我不知道如何做到这一点。我大致了解如何一般地改变大小,但不知道如何动态地基于该视图内的文本进行调整。
可变文本视图位置
同样,就像普通的iOS消息一样,文本视图需要根据发送方或对话方向左或右偏移。我也不知道如何做到这一点,因为它会改变文本视图的中心。
不可选择性
Xcode允许单元格被按下。处理此选择后发生的事情可以通过didSelectRowatIndexPath tableView函数实现。我可以简单地不实现它,但是单击单元格会使其变暗,以指示已被按下。我想消除这一点,同时保留选择文本并复制粘贴等功能(就像手机上的消息一样)
其他方法?
这才是问题的真正核心。我考虑了上述方法,因为这是我在有限的XCode UI元素经验基础上能想到的全部。如果有更好的方法(甚至是一个pod或框架)来实现此目的,我很乐意听取建议。我不需要消息UI看起来惊人,只要干净利落即可。
JSQMessagesViewController
,尽管该主要库已被宣布为过时的,但目前社区仍然非常庞大并在使用它。 https://github.com/jessesquires/JSQMessagesViewController - Ratul Sharker