Commit 2973e931ecea536913162ea95c9246ead91854c8
1 parent
88b9a880
add CustomUI + TextFieldWithPadding
Showing
3 changed files
with
65 additions
and
9 deletions
@@ -23,8 +23,8 @@ class Checkbox: UIButton { | @@ -23,8 +23,8 @@ class Checkbox: UIButton { | ||
23 | override var isSelected: Bool { | 23 | override var isSelected: Bool { |
24 | didSet { | 24 | didSet { |
25 | checkBoxLabel.textColor = isSelected ? | 25 | checkBoxLabel.textColor = isSelected ? |
26 | - UIColor(red: 50/255, green: 55/255, blue: 85/255, alpha: 1) : | ||
27 | - UIColor(red: 185/255, green: 185/255, blue: 185/255, alpha: 1) | 26 | + .TextColor.darkBlue : |
27 | + .TextColor.lightGrey | ||
28 | checkboxImageView.image = isSelected ? | 28 | checkboxImageView.image = isSelected ? |
29 | UIImage(named: "OnIndicator") : | 29 | UIImage(named: "OnIndicator") : |
30 | UIImage(named: "OffIndicator") | 30 | UIImage(named: "OffIndicator") |
@@ -5,4 +5,61 @@ | @@ -5,4 +5,61 @@ | ||
5 | // Created by Дмитрий Тимофеев on 17.06.2022. | 5 | // Created by Дмитрий Тимофеев on 17.06.2022. |
6 | // | 6 | // |
7 | 7 | ||
8 | -import Foundation | 8 | +import UIKit |
9 | +class SquereCheckbox: UIButton { | ||
10 | + private let checkboxImageView: UIImageView = { | ||
11 | + let obj = UIImageView() | ||
12 | + return obj | ||
13 | + }() | ||
14 | + | ||
15 | + private let checkBoxLabel: UILabel = { | ||
16 | + let obj = UILabel() | ||
17 | + obj.font = .skModernist(type: .regular, ofSize: 14) | ||
18 | + return obj | ||
19 | + }() | ||
20 | + | ||
21 | + override var isSelected: Bool { | ||
22 | + didSet { | ||
23 | + checkBoxLabel.textColor = isSelected ? | ||
24 | + .TextColor.darkBlue : | ||
25 | + .TextColor.lightGrey | ||
26 | + checkboxImageView.image = isSelected ? | ||
27 | + UIImage(named: "FullSquere") : | ||
28 | + UIImage(named: "EmptySquere") | ||
29 | + } | ||
30 | + } | ||
31 | + | ||
32 | + var checkboxTitle: String = "" { | ||
33 | + didSet { | ||
34 | + checkBoxLabel.text = checkboxTitle | ||
35 | + } | ||
36 | + } | ||
37 | + | ||
38 | + override init(frame: CGRect) { | ||
39 | + super.init(frame: frame) | ||
40 | + setup() | ||
41 | + } | ||
42 | + | ||
43 | + required init?(coder: NSCoder) { | ||
44 | + super.init(coder: coder) | ||
45 | + setup() | ||
46 | + } | ||
47 | + | ||
48 | + private func setup() { | ||
49 | + isSelected = false | ||
50 | + | ||
51 | + addSubview(checkboxImageView) | ||
52 | + addSubview(checkBoxLabel) | ||
53 | + | ||
54 | + checkboxImageView.snp.makeConstraints { make in | ||
55 | + make.leading.equalToSuperview() | ||
56 | + make.top.bottom.equalToSuperview() | ||
57 | + } | ||
58 | + | ||
59 | + checkBoxLabel.snp.makeConstraints { make in | ||
60 | + make.top.bottom.equalToSuperview() | ||
61 | + make.trailing.equalToSuperview() | ||
62 | + make.leading.equalTo(checkboxImageView.snp.trailing).offset(10) | ||
63 | + } | ||
64 | + } | ||
65 | +} |
@@ -8,20 +8,19 @@ | @@ -8,20 +8,19 @@ | ||
8 | import UIKit | 8 | import UIKit |
9 | 9 | ||
10 | class TextFieldWithPadding: UITextField { | 10 | class TextFieldWithPadding: UITextField { |
11 | - var textPaddingForPhone = UIEdgeInsets( | 11 | + var textPadding = UIEdgeInsets( |
12 | top: 0, | 12 | top: 0, |
13 | - left: 78, | 13 | + left: 0, |
14 | bottom: 0, | 14 | bottom: 0, |
15 | - right: 22 | ||
16 | - ) | 15 | + right: 0) |
17 | 16 | ||
18 | override func textRect(forBounds bounds: CGRect) -> CGRect { | 17 | override func textRect(forBounds bounds: CGRect) -> CGRect { |
19 | let rect = super.textRect(forBounds: bounds) | 18 | let rect = super.textRect(forBounds: bounds) |
20 | - return rect.inset(by: textPaddingForPhone) | 19 | + return rect.inset(by: textPadding) |
21 | } | 20 | } |
22 | 21 | ||
23 | override func editingRect(forBounds bounds: CGRect) -> CGRect { | 22 | override func editingRect(forBounds bounds: CGRect) -> CGRect { |
24 | let rect = super.editingRect(forBounds: bounds) | 23 | let rect = super.editingRect(forBounds: bounds) |
25 | - return rect.inset(by: textPaddingForPhone) | 24 | + return rect.inset(by: textPadding) |
26 | } | 25 | } |
27 | } | 26 | } |
Please
register
or
login
to post a comment