我目前有一个具有消息功能的应用程序。它允许用户互相聊天。目前,消息从下往上显示(我能够通过旋转表格和单元格来完成此操作)。现在要区分发送者和接收者我使用不同的彩色文本。
我想使用气泡图像作为消息的背景,以便应用看起来更像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;
答案 0 :(得分:10)
我使用4个UIViews创建了一个类似于bubble的同上iMessage。它在代码和XIB(UITableViewCell)中都可用。它是高度可定制的。您可以更改颜色,字体,字体大小,尾巴或无尾部等。请在此处查看
答案 1 :(得分:3)
有几种方法可以实现这样的功能。可能最简单的解决方案是使用
UIImage
的{{3}}方法。您可以为每条聊天消息创建一个tableview单元格,并在背景上绘制此图像并使图像在顶点插入点处伸展。
在tableView委托方法-resizableImageWithCapInsets:
中,您可以使用NSString
方法设置单元格的高度
-tableView:heightForRowAtIndexPath:
计算单元格内容的正确高度(实际的聊天消息)。
答案 2 :(得分:-2)
将UIImageView
添加到您用于显示文本的任何对象中。然后将其image
属性设置为您想要的任何图像; UIImageView
会为您自动恢复。