首页 > 解决方案 > Swift 不会重绘 CATextLayer

问题描述

我正在使用按钮的扩展来实现我自己的 UIButton 方法,并创建一个 CATextLayer 以在按钮中添加 1 个更多文本,但是我使用不同的参数(文本)调用此方法,以前的文本仍然在新文本后面,并且超过。我需要重新绘制没有堆栈文本的按钮(使用新文本调用方法并且只有新文本)

extension UIButton{

    func spordAcceptButAction(c_one: UIColor, c_two: UIColor, corner: Int, w: Int, number: Int, gradientLayer:CAGradientLayer){

        var textLayer: CATextLayer!

        let startFontSize: CGFloat = 60

        let startPosition: CGPoint = CGPoint(x: 0, y: 0)


        // Do any additional setup after loading the view, typically from a nib.
        // let gradientLayer = CAGradientLayer()
        textLayer = CATextLayer()
        textLayer.alignmentMode = CATextLayerAlignmentMode.left
        textLayer.anchorPoint = CGPoint(x: 0, y: 0)
        textLayer.bounds.size = CGSize(width: 100, height: 100)
        textLayer.contentsScale = UIScreen.main.scale
        textLayer.font = UIFont.systemFont(ofSize: startFontSize, weight: UIFont.Weight.semibold)
        textLayer.fontSize = startFontSize
        //  textLayer.backgroundColor = #colorLiteral(red: 0.521568656, green: 0.1098039225, blue: 0.05098039284, alpha: 1)
        textLayer.isWrapped = true
        textLayer.position = startPosition
        textLayer.string = String(number)

在此处输入图像描述

标签: swiftcatextlayer

解决方案


推荐阅读