控件为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
形式吗?
无法弄清楚这是问题还是强制更新的任何其他方式。