在iMessage中创建看起来像聊天气泡的聊天气泡-简单的方法
本文是有关创建(iMessage样式)聊天气泡的两篇文章的第一篇。
本文基于Rob Kerr的原始教程。
在本文中,我们将探讨创建带有尾巴的聊天气泡的简单方法。 在第二篇中,我们将介绍高级方法。
本教程是使用Swift 4.1和Xcode 9.2创建的。 源代码在Github上可用。
本教程将教您如何创建一个带有尾巴的聊天气泡,它看起来像是iMessage中的聊天气泡。 但这与创建一个成熟的聊天应用程序无关。 我将专门关注如何以简单的方式创建动态大小的气泡。 让我们开始吧!
- 我们的气泡将基于易于拉伸的图像
- 为了拉伸图像,我们将使用
resizableImage(withCapInsets capInsets: UIEdgeInsets, resizingMode: UIImageResizingMode) -> UIImage
UIImage
实例的resizableImage(withCapInsets capInsets: UIEdgeInsets, resizingMode: UIImageResizingMode) -> UIImage
方法 - 另外,我们将使用
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上获得。