swift - 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)
解决方案
推荐阅读
- html - Img 在 HTML 5 中未加载
- python - 行间距(IDLE 和 VS 代码)
- python - UnicodeEncodeError:“ascii”编解码器无法对位置 18-23 中的字符进行编码:序数不在范围内(128)
- c# - 在 C#、Windows 10 中创建虚拟相机,以使用 Zoom、Skype、浏览器
- regex - 正则表达式用行注释替换块注释
- testing - 在 Postman 测试脚本中使用动态值
- ruby - 在 Ruby 中按全名对 Tar 条目进行排序时出错
- java - 如何通过执行 JAR 创建 XML 报告
- javascript - 从包含路径的字符串列表创建树
- angular - 如何从角度 8 记录 aws pinpoint 事件