Swift:在setNeedsDisplay之后调用CALayer的覆盖方法drawInContext

时间:2015-06-02 10:02:15

标签: ios swift calayer

控件为3个自定义图层,如下所示:

class BASwitch: UIControl {
    override init(frame:CGRect){
        super.init(frame:frame)
         ...
         self.toggleLayer = BASwitchToggleLayer()
         self.layer.addSublayer(self.toggleLayer)
         self.toggleLayer.setNeedsDisplay()
         ...
    }
}

当从toggleLayer调用的选择器中更改UIViewControl时,会调用drawInContext并更新toggleLayer的内容。

从渲染toggleLayer方法(delegate中的渲染器)内部调用SCNSceneRendererDelegate时,不会调用drawInContext方法。 < / p>

在这两种情况下,此代码的更新都以相同的方式执行:

self.toggleLayer.offString = newValue
self.toggleLayer.setNeedsDisplay()

有Swift需要调用的doEvents() C# windows形式吗? 无法弄清楚这是问题还是强制更新的任何其他方式。

0 个答案:

没有答案