我正在尝试找到在UILabels内部显示图像的最佳方式(事实上,如果它支持没有麻烦的图像,我不介意切换到UILabel以外的其他东西)
场景是:
简单来说,想象一下即时信使的TableView,它解析所有“:)”,“:(”,“:D”等替换相应的笑脸图像
非常感谢任何输入!
答案 0 :(得分:4)
我相信您可以在字符串中插入某些Unicode字符,而iPhone会将它们显示为表情符号:
答案 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