gpt4 book ai didi

ios - 如何在单击按钮时更改 CAShaperLayer 的描边颜色

转载 作者:行者123 更新时间:2023-11-28 13:37:49 26 4
gpt4 key购买 nike

我已经创建了一些自定义层并添加到 UIView 上,我有两个 CAShaper 层,但我在这里只显示一个示例

    hexBorderOtline = CAShapeLayer()
hexBorderOtline.name = "dhiru_border_hidden"
hexBorderOtline.path = path2.cgPath
hexBorderOtline.lineCap = .round
hexBorderOtline.strokeColor = inActiveBorderColor.cgColor
hexBorderOtline.fillColor = UIColor.clear.cgColor
self.layer.addSublayer(hexBorderOtline)

我想在单击按钮时更改它的边框颜色。

func btnAction()
{
hexBorderOtline.strokeColor = activeBorderColor.cgColor
}

但这不起作用,我正在发布一张引用图片,我需要在点击按钮时执行此操作。

enter image description here

最佳答案

您切换形状图层笔触颜色的方法是正确的:

enter image description here

我所做的是:

var enabled = false

@IBAction func didTapButton(_ sender: Any) {
enabled = !enabled
hexBorderOtline.strokeColor = enabled ? activeBorderColor.cgColor : inActiveBorderColor.cgColor
}

所以,您的问题出在别处。例如:

  • 也许您在要更改颜色的图层之上有另一个形状图层。

  • 或者您的 ivar 可能指向另一个形状层。

  • 或者您的按钮可能没有连接到您的 btnAction 例程(缺少任何 @IBAction@objc让我怀疑你没有调用这个例程)。

它会像那样简单。

我建议您在创建 CAShapeLayer 的地方添加 print(hexBorderOtline) 并再次在 btnAction 中添加并确认:

  1. 您将看到两组 print 语句;和

  2. 它们正在打印与形状层关联的相同内存地址(即确保它们指的是相同的形状层)。

但它必须是那样的。这是更改 strokeColor 的正确方法,它会自动为您更新形状图层。您的问题出在别处。

关于ios - 如何在单击按钮时更改 CAShaperLayer 的描边颜色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56395146/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com