Some more interesting visual state with script button

This commit is contained in:
James Magahern
2020-07-31 15:03:00 -07:00
parent 9a74042b59
commit 8728e1cf54
2 changed files with 33 additions and 5 deletions

View File

@@ -9,16 +9,25 @@ import UIKit
class ScriptControllerIconView: UIButton
{
public var shieldsDown: Bool = false {
didSet { setNeedsLayout() }
}
public var someScriptsAllowed: Bool = false {
didSet { setNeedsLayout() }
}
private let labelView = UILabel(frame: .zero)
private let shieldsDownImage = UIImage(systemName: "shield.slash")
private let shieldsUpImage = UIImage(systemName: "shield")
private let shieldsPartiallyUpImage = UIImage(systemName: "shield.lefthalf.fill")
convenience init() {
self.init(frame: .zero)
addSubview(labelView)
let image = UIImage(systemName: "shield")
setImage(image, for: .normal)
imageView?.contentMode = .scaleAspectFit
labelView.backgroundColor = .systemRed
labelView.textAlignment = .center
@@ -47,5 +56,15 @@ class ScriptControllerIconView: UIButton
labelView.sizeToFit()
labelView.center = CGPoint(x: bounds.center.x + 10, y: bounds.center.y + 10)
labelView.bounds = labelView.bounds.insetBy(dx: -3.0, dy: -2.0)
if shieldsDown {
setImage(shieldsDownImage, for: .normal)
} else {
if someScriptsAllowed {
setImage(shieldsPartiallyUpImage, for: .normal)
} else {
setImage(shieldsUpImage, for: .normal)
}
}
}
}