在iMessage中创建看起来像聊天气泡的聊天气泡-简单的方法

本文是有关创建(iMessage样式)聊天气泡的两篇文章的第一篇。

本文基于Rob Kerr的原始教程。

在本文中,我们将探讨创建带有尾巴的聊天气泡的简单方法。 在第二篇中,我们将介绍高级方法。

本教程是使用Swift 4.1和Xcode 9.2创建的。 源代码在Github上可用。

本教程将教您如何创建一个带有尾巴的聊天气泡,它看起来像是iMessage中的聊天气泡。 但这与创建一个成熟的聊天应用程序无关。 我将专门关注如何以简单的方式创建动态大小的气泡。 让我们开始吧!

  1. 我们的气泡将基于易于拉伸的图像
  2. 为了拉伸图像,我们将使用resizableImage(withCapInsets capInsets: UIEdgeInsets, resizingMode: UIImageResizingMode) -> UIImage UIImage实例的resizableImage(withCapInsets capInsets: UIEdgeInsets, resizingMode: UIImageResizingMode) -> UIImage方法
  3. 另外,我们将使用boundingRect(with size: CGSize, options: NSStringDrawingOptions = [], attributes: [NSAttributedStringKey : Any]? = nil, context: NSStringDrawingContext?) -> CGRect String实例的boundingRect(with size: CGSize, options: NSStringDrawingOptions = [], attributes: [NSAttributedStringKey : Any]? = nil, context: NSStringDrawingContext?) -> CGRect方法来计算气泡的高度

我在Adobe Illustrator中创建了两个文本气泡(用于传入和传出消息),并将它们另存为PDF文件。 然后将它们添加到项目中。

您可以在自己喜欢的图像编辑器中创建自己的气泡,也可以使用我的气泡。 PDF格式很好,因为它会自动缩放。 因此,您无需准备三张不同大小的图像。

在我们的ViewController添加以下方法实现。 还要添加viewWillAppear()并在其中插入我们的showOutgoingMessage()调用。

不错。 但是,让我们尝试更改气泡的尺寸。

真好 让我们添加更改背景颜色的功能。

还有压轴部分。 添加文本标签并计算其大小。 假设气泡的最大宽度不应超过屏幕宽度的66%。

做得好!

viewWillAppear()添加一个新方法及其调用。

好的,看起来很熟悉。 假设图像气泡的宽度应等于屏幕的一半。

最后一部分。 添加另一个UIImageView实例。 我们使用maskView掩蔽我们的消息图像。

真好! 在第二篇文章中,我们将使用更高级的技术来创建这些气泡。

本教程的源代码可在Github上获得。