CheckBoxDesignable.swift 825 B

1234567891011121314151617181920212223242526272829303132333435
  1. //
  2. // Created by Jake Lin on 12/20/15.
  3. // Copyright © 2015 IBAnimatable. All rights reserved.
  4. //
  5. import UIKit
  6. public protocol CheckBoxDesignable: class {
  7. var checked: Bool { get set }
  8. var checkedImage: UIImage? { get set }
  9. var uncheckedImage: UIImage? { get set }
  10. }
  11. public extension CheckBoxDesignable where Self: UIButton {
  12. func configureCheckBoxChecked() {
  13. isSelected = checked
  14. }
  15. func configureCheckBoxCheckedImage() {
  16. guard let checkedImage = checkedImage else {
  17. return
  18. }
  19. setBackgroundImage(checkedImage, for: .selected)
  20. setBackgroundImage(checkedImage, for: [.selected, .highlighted])
  21. }
  22. func configureCheckBoxUncheckedImage() {
  23. guard let uncheckedImage = uncheckedImage else {
  24. return
  25. }
  26. setBackgroundImage(uncheckedImage, for: UIControl.State())
  27. }
  28. }