2010-06-28 107 views
0

这是一个针对iPhone开发的问题,我是hopin,有人可以将我指向正确的方向,我应该如何去实现这一点。泡泡聊天+表情+ UITableViewCell

我正在尝试编写一个支持表情图标/表情符号的聊天应用程序。笑脸/表情符号图像的存储位置可以在后面找到。我认为很少有iPhone应用程序已经在做这个(即Skype + Ebuddy(?)),但不知道他们用什么方法。

周围搜索后,似乎有这样做的(我认为)的几个方法:已经讨论过

  • 泡泡聊天的风格。 UITableViewController自定义UITableViewCell。对于表情符号,可能需要进行大量的计算来确定每个表情符号在哪里粘贴UIImageView
  • 使用UIWebView作为整个“窗口”。将它看起来像泡泡聊天。对图像笑脸布置进行任何手动计算。

我不知道这两种方法的性能如何,它可以得到多么复杂等等,所以任何意见和指导都会有帮助。干杯

回答

1

如果您使用自定义UITableViewCell,那么我可能会实现drawRect:而不是添加标签和图像。一个人可能需要尽可能长时间地执行,但它会表现得更好。

虽然您必须确保所有内容都看起来正确,但UIWebView可能值得一试。我建议不要使用一个大的网页,而只是在每个表格视图单元中放入一个网页视图。

就我个人而言,我更喜欢第一种方法,测量和布局文本并不太复杂,但我从来没有成为最终的HTML大师。

+0

我明白了。我想我必须更好地理解低水平apis的正确性,但肯定这会给我对显示内容的最大控制。哦,男孩会有很多的字符串长度/宽度的计算。即如果符合x宽度,绘制字符串,否则包装。如果有表情符号,它是否适合等等等 会看到它是如何去。感谢您的回复队友。 – Bundeeteddee 2010-06-29 03:02:30

0

我在制作自定义UITableViewCells,尤其是使用drawRect中,而不是添加标签,图像与@Eiko同意等

如果你使用一个UIWebView你会如何处理更新呢?每次发送新文本时都会重新加载一次?这似乎是一个问题的原因。一旦你得到一个长的谈话重新加载整个UIWebView的内容将导致一些闪烁,这在我看来是不可接受的。同样使用UIWebView将需要您在内存中拥有2个完整的每个对话副本。 1作为后端数据,1作为HTML。在使用UITableView的地方,你有后台数据,并且只有足够的数据将被复制,一次可以填满1个屏幕。

+0

我不太确定如果整个视图是UIWebView,我将如何处理它。我还不太熟悉UIWebView的一面。也许有一种方法可以即时注入html代码?如果不是,那么闪烁肯定会发生。 @eiko提到的另一种方式是每个需要表情图标的聊天项目的UIWebview。如果您只对具有至少一个表情符号的聊天项目执行此操作,可能并不算太坏。否则,只是一个自定义的UITableViewCell。我对性能和内存使用率有很多担忧。 – Bundeeteddee 2010-06-29 03:53:56

+0

他可以挂钩的JavaScript和动态更改页面。另一方面,UIWebView将让用户使用复制和粘贴,这是你不太可能在自定义绘制视图上实现的 - 至少不会达到这种细节水平。 – Eiko 2010-06-29 07:47:03