可扩展的聊天泡泡UITableViewCell iOS

时间:2012-08-02 14:15:56

标签: objective-c ios ipad imessage

我目前有一个具有消息功能的应用程序。它允许用户互相聊天。目前,消息从下往上显示(我能够通过旋转表格和单元格来完成此操作)。现在要区分发送者和接收者我使用不同的彩色文本。

我想使用气泡图像作为消息的背景,以便应用看起来更像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;

3 个答案:

答案 0 :(得分:10)

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

https://github.com/kerrygrover/iMessageBubble

enter image description here

答案 1 :(得分:3)

有几种方法可以实现这样的功能。可能最简单的解决方案是使用
 UIImage的{​​{3}}方法。您可以为每条聊天消息创建一个tableview单元格,并在背景上绘制此图像并使图像在顶点插入点处伸展。

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

答案 2 :(得分:-2)

UIImageView添加到您用于显示文本的任何对象中。然后将其image属性设置为您想要的任何图像; UIImageView会为您自动恢复。

UIImageView Class Reference