SegmentedReliefButton: actually show background states

This commit is contained in:
James Magahern
2020-08-14 18:42:40 -07:00
parent fa4ba64660
commit f2190abb6e
3 changed files with 78 additions and 13 deletions

View File

@@ -28,19 +28,19 @@ class ScriptPolicyControl: UIControl
segmentContainer.children = [ allowButton, denyButton ]
addSubview(segmentContainer)
allowButton.showsTouchWhenHighlighted = false
allowButton.addAction(UIAction(handler: { [unowned self] _ in
self.policyStatus = .allowed
self.sendActions(for: .valueChanged)
}), for: .touchUpInside)
allowButton.imageView?.contentMode = .scaleAspectFit
addSubview(allowButton)
denyButton.showsTouchWhenHighlighted = false
denyButton.addAction(UIAction(handler: { [unowned self] _ in
self.policyStatus = .blocked
self.sendActions(for: .valueChanged)
}), for: .touchUpInside)
denyButton.imageView?.contentMode = .scaleAspectFit
addSubview(denyButton)
}
override var intrinsicContentSize: CGSize {
@@ -54,15 +54,19 @@ class ScriptPolicyControl: UIControl
if policyStatus == .allowed {
allowButton.tintColor = .blue
allowButton.remainsPressed = true
allowButton.setImage(UIImage(systemName: "play.circle.fill"), for: .normal)
denyButton.tintColor = .darkGray
denyButton.tintColor = nil
denyButton.remainsPressed = false
denyButton.setImage(UIImage(systemName: "stop.circle"), for: .normal)
} else {
allowButton.tintColor = .darkGray
allowButton.tintColor = nil
allowButton.remainsPressed = false
allowButton.setImage(UIImage(systemName: "play.circle"), for: .normal)
denyButton.tintColor = .red
denyButton.remainsPressed = true
denyButton.setImage(UIImage(systemName: "stop.circle.fill"), for: .normal)
}
}