@@ -6,7 +6,9 @@ import UIKit
66public final class BKCheckBox : UIControl {
77 public enum CheckboxType {
88 case round
9+ case roundStroke
910 case rectangle
11+ case rectangleStroke
1012 }
1113
1214 private let imageView = UIImageView ( )
@@ -52,25 +54,33 @@ public final class BKCheckBox: UIControl {
5254 }
5355 imageView. image = type. defaultImage
5456 addTarget ( self , action: #selector( toggleCheck) , for: . touchUpInside)
55- }
56-
57- @objc private func toggleCheck( ) {
58- isChecked. toggle ( )
59- sendActions ( for: . valueChanged)
57+
58+ isAccessibilityElement = true
59+ accessibilityTraits = . button
60+ updateAccessibilityValue ( )
6061 }
6162
6263 private func updateImage( ) {
6364 if isEnabled {
6465 imageView. image = isChecked
6566 ? type. checkedImage
66- : type. unCheckedImage
67+ : type. defaultImage
6768 } else {
6869 imageView. image = type. disabledImage
6970 }
7071 }
7172}
7273
7374private extension BKCheckBox {
75+ @objc private func toggleCheck( ) {
76+ isChecked. toggle ( )
77+ sendActions ( for: . valueChanged)
78+ }
79+
80+ func updateAccessibilityValue( ) {
81+ accessibilityValue = isChecked ? " 선택됨 " : " 선택 안됨 "
82+ }
83+
7484 enum LayoutConstants {
7585 static let size : CGFloat = 24
7686 }
@@ -79,9 +89,9 @@ private extension BKCheckBox {
7989extension BKCheckBox . CheckboxType {
8090 var defaultImage : UIImage {
8191 switch self {
82- case . round:
92+ case . round, . roundStroke :
8393 return BKImage . Checkbox. defaultRound
84- case . rectangle:
94+ case . rectangle, . rectangleStroke :
8595 return BKImage . Checkbox. defaultRectangle
8696 }
8797 }
@@ -90,25 +100,20 @@ extension BKCheckBox.CheckboxType {
90100 switch self {
91101 case . round:
92102 return BKImage . Checkbox. filled
93- case . rectangle:
94- return BKImage . Checkbox. filledRectangle
95- }
96- }
97-
98- var unCheckedImage : UIImage {
99- switch self {
100- case . round:
103+ case . roundStroke:
101104 return BKImage . Checkbox. strokeRound
102105 case . rectangle:
106+ return BKImage . Checkbox. filledRectangle
107+ case . rectangleStroke:
103108 return BKImage . Checkbox. strokeRectangle
104109 }
105110 }
106111
107112 var disabledImage : UIImage {
108113 switch self {
109- case . round:
114+ case . round, . roundStroke :
110115 return BKImage . Checkbox. disabledRound
111- case . rectangle:
116+ case . rectangle, . rectangleStroke :
112117 return BKImage . Checkbox. disabledRectangle
113118 }
114119 }
0 commit comments