UILabel内部的图像

时间:2010-06-16 23:42:17

标签: iphone image uitableview uilabel

我正在尝试找到在UILabels内部显示图像的最佳方式(事实上,如果它支持没有麻烦的图像,我不介意切换到UILabel以外的其他东西)

场景是:

  • 我有一个包含数百个单元格的表格视图,UILabel是每个单元格的主要组成部分
  • 我分配给每个单元格的文本包含需要解析并表示为图像的字符序列

简单来说,想象一下即时信使的TableView,它解析所有“:)”,“:(”,“:D”等替换相应的笑脸图像

非常感谢任何输入!

3 个答案:

答案 0 :(得分:4)

我相信您可以在字符串中插入某些Unicode字符,而iPhone会将它们显示为表情符号:

http://www.easyapns.com/category/just-for-fun

答案 1 :(得分:2)

一种方法是使用UIWebView而不是UILabel。将每个表情符号替换为图片所在的<img src=...>标记。使用loadHTMLString填充UIWebView并将[[NSBundle mainBundle] resourcePath]的URL作为baseURL传递。

将图像手动放置在UILabel上方的另一种更困难的方法。留下表情符号会出现的几个空格。测量文本并在UILabel上方放置UIImageView用于每个表情符号。

您还可以将CoreGraphics用于所有文本和图像布局。将字符串分解为文本和表情符号。在绘制每个字符串时,CGContext将更新下一个绘制的文本位置。当你到达表情符号时,绘制适当的图像并手动前进文本位置。

使用UIWebView可能是最难编码的,并且还支持样式文本。除非您跳过表视图并在单个UIWebView中执行所有操作,否则它也是最耗费资源的。通过在重用单元格时使用javascript加载内容,可以加快速度。

如果速度成为一个问题,使用CoreGraphics可能是最快且资源最少的。

答案 2 :(得分:0)

也许您可以使用UIWebView代替UILabel s