SetupButton.swift 1.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263
  1. //
  2. // SetupButton.swift
  3. // Loop
  4. //
  5. // Copyright © 2018 LoopKit Authors. All rights reserved.
  6. //
  7. import UIKit
  8. public class SetupButton: UIButton {
  9. public override init(frame: CGRect) {
  10. super.init(frame: frame)
  11. setup()
  12. }
  13. public required init?(coder aDecoder: NSCoder) {
  14. super.init(coder: aDecoder)
  15. }
  16. public override func awakeFromNib() {
  17. super.awakeFromNib()
  18. setup()
  19. }
  20. private func setup() {
  21. backgroundColor = tintColor
  22. layer.cornerRadius = 6
  23. titleLabel?.adjustsFontForContentSizeCategory = true
  24. contentEdgeInsets.top = 14
  25. contentEdgeInsets.bottom = 14
  26. setTitleColor(.white, for: .normal)
  27. }
  28. public override func tintColorDidChange() {
  29. super.tintColorDidChange()
  30. backgroundColor = tintColor
  31. }
  32. public override func prepareForInterfaceBuilder() {
  33. super.prepareForInterfaceBuilder()
  34. tintColor = .blue
  35. tintColorDidChange()
  36. }
  37. public override var isHighlighted: Bool {
  38. didSet {
  39. alpha = isHighlighted ? 0.5 : 1
  40. }
  41. }
  42. public override var isEnabled: Bool {
  43. didSet {
  44. tintAdjustmentMode = isEnabled ? .automatic : .dimmed
  45. }
  46. }
  47. }