3

我目前有一个具有消息传递功能的应用程序。它允许用户互相聊天。目前消息是自下而上出现的(我可以通过旋转表格和单元格来实现这一点)。现在为了区分发送者和接收者,我使用不同颜色的文本。

我想使用气泡图像作为消息的背景,以使应用看起来更像 iMessage。我知道可以调整图像大小,但我无法理解这一点。我需要一种特殊的图像吗?如果是这样,我如何调整该图像的大小以使其适合文本,然后将其放置为背景?

在此先感谢您的帮助。

-EDIT- 我用来生成带有气泡的单元格的代码:

[self.textLabel setFont:[UIFont fontWithName:@"Helvetica" size:20]];
[self.textLabel setNumberOfLines:0];
CGSize size = [message.message sizeWithFont:self.textLabel.font];

    [self.textLabel setFrame:CGRectMake(690.0f - (size.width + 5.0f), 8.0f, size.width + 5.0f, size.height)];
    UIImage *bubble = [[UIImage imageNamed:@"aqua.png"] stretchableImageWithLeftCapWidth:24 topCapHeight:15];
    UIImageView *bubbleView = [[UIImageView alloc] initWithFrame:CGRectMake(704 - (size.width + 25.0f), 2.0f, size.width + 25.0f, size.height + 15.0f)];
    bubbleView.image = bubble;
    self.backgroundColor = [UIColor clearColor];
    self.opaque = NO;
    self.backgroundView = bubbleView;
4

3 回答 3

10

我使用 4 个 UIView 创建了一个类似气泡的 iMessage。它在代码和 XIB (UITableViewCell) 中都可用。它是高度可定制的。您可以更改颜色、字体、字体大小、尾部或无尾部等。请在此处查看

https://github.com/kerrygrover/iMessageBubble

在此处输入图像描述

于 2015-10-02T18:14:14.790 回答
3

有几种方法可以实现这样的功能。可能最简单的解决方案是
-resizableImageWithCapInsets:使用UIImage. 您可以为每个聊天消息创建一个表格视图单元格,并在背景上绘制此图像并使图像在帽插入点处拉伸。

在 tableView 委托方法-tableView:heightForRowAtIndexPath:中,您可以设置单元格的高度,利用该NSString方法
-sizeWithFont:constrainedToSize:lineBreakMode:计算单元格内容(实际聊天消息)的正确高度。

于 2012-08-02T14:58:13.107 回答
-2

将 a 添加UIImageView到您用来显示文本的任何对象。然后只需将其image属性设置为您想要的任何图像;UIImageView将为您自动调整大小。

UIImageView 类参考

于 2012-08-02T14:28:45.807 回答