     super.init(frame: .zero)
     prepare()
     prepareSwitchState(state: state)
-    prepareSwitchStyle(style: style)
     prepareSwitchSize(size: size)
   }
   

  func switchDidChangeState(control: Switch, state: SwitchState)
}

open class Switch: UIControl {
  /// Will layout the view.
  open var willLayout: Bool {
    return 0 < bounds.width && 0 < bounds.height && nil != superview

    prepareTrack()
    prepareButton()
    prepareSwitchState()
    prepareSwitchSize()
    applyCurrentTheme()
  }
  
  open func apply(theme: Theme) {
    buttonOnColor = theme.secondary
    trackOnColor = theme.secondary.withAlphaComponent(0.60)
    buttonOffColor = theme.surface.blend(with: theme.onSurface.withAlphaComponent(0.15).blend(with: theme.secondary.withAlphaComponent(0.06)))
    trackOffColor = theme.onSurface.withAlphaComponent(0.12)
    
    buttonOnDisabledColor = theme.surface.blend(with: theme.onSurface.withAlphaComponent(0.15))
    trackOnDisabledColor = theme.onSurface.withAlphaComponent(0.15)
    buttonOffDisabledColor = buttonOnDisabledColor
    trackOffDisabledColor = trackOnDisabledColor
  }
}

