如何在swift中制作如下图所示的标签

如何在swift中制作如下图所示的标签,swift,Swift,我正在开发聊天应用程序,我试图制作类似于贝娄图片的标签,但我做不到,任何人都可以帮助我 在Xcode中转到您的资产,选择气泡图像并单击显示切片 切片使您的图像能够使用给定的切片拉伸而不变形。使用CoreGraphics绘制此表单很复杂。我已经得到了这个并不完美的结果。你可以在“drawRect”方法中使用这段代码,在你必须绘制(或覆盖布局)文本之后 func drawCanvas1(frame: CGRect = CGRect(x: 0, y: 0, width: 120, height: 10

我正在开发聊天应用程序,我试图制作类似于贝娄图片的标签,但我做不到,任何人都可以帮助我


在Xcode中转到您的资产,选择气泡图像并单击
显示切片


切片使您的图像能够使用给定的切片拉伸而不变形。

使用CoreGraphics绘制此表单很复杂。我已经得到了这个并不完美的结果。你可以在“drawRect”方法中使用这段代码,在你必须绘制(或覆盖布局)文本之后

func drawCanvas1(frame: CGRect = CGRect(x: 0, y: 0, width: 120, height: 100)) {
    //// General Declarations
    // This non-generic function dramatically improves compilation times of complex expressions.
    func fastFloor(_ x: CGFloat) -> CGFloat { return floor(x) }

    //// Rectangle Drawing
    let rectanglePath = UIBezierPath(roundedRect: CGRect(x: frame.minX + fastFloor(frame.width * 0.25000 + 0.5), y: frame.minY + fastFloor(frame.height * 0.00000 + 0.5), width: fastFloor(frame.width * 1.00000 + 0.5) - fastFloor(frame.width * 0.25000 + 0.5), height: fastFloor(frame.height * 1.00000 + 0.5) - fastFloor(frame.height * 0.00000 + 0.5)), cornerRadius: 10)
    UIColor.gray.setFill()
    rectanglePath.fill()


    //// Bezier 3 Drawing
    let bezier3Path = UIBezierPath()
    bezier3Path.move(to: CGPoint(x: frame.minX + 0.5, y: frame.minY + 85.5))
    bezier3Path.addCurve(to: CGPoint(x: frame.minX + 30.5, y: frame.minY + 64.5), controlPoint1: CGPoint(x: frame.minX + 0.5, y: frame.minY + 85.5), controlPoint2: CGPoint(x: frame.minX + 30.5, y: frame.minY + 85.5))
    bezier3Path.addCurve(to: CGPoint(x: frame.minX + 43.5, y: frame.minY + 99.5), controlPoint1: CGPoint(x: frame.minX + 30.5, y: frame.minY + 43.5), controlPoint2: CGPoint(x: frame.minX + 43.5, y: frame.minY + 99.5))
    bezier3Path.move(to: CGPoint(x: frame.minX + 0.59, y: frame.minY + 85.5))
    bezier3Path.addCurve(to: CGPoint(x: frame.minX + 43.5, y: frame.minY + 99.5), controlPoint1: CGPoint(x: frame.minX - 0.43, y: frame.minY + 86.43), controlPoint2: CGPoint(x: frame.minX + 6.72, y: frame.minY + 99.5))
    UIColor.gray.setFill()
    bezier3Path.fill()
    UIColor.gray.setStroke()
    bezier3Path.lineWidth = 1
    bezier3Path.lineCapStyle = .round
    bezier3Path.lineJoinStyle = .round
    bezier3Path.stroke()
}


我建议您使用此表单在Illustrator或其他程序中创建一个图像,并将其用作背景。

看一看,试试这个谢谢,兄弟,它真的很出色