@@ -28,7 +28,7 @@ class DebugLabelViewController: ViewController<DebugLabelView> {
28
28
super. viewDidLoad ( )
29
29
30
30
setup ( )
31
- update ( )
31
+ updateText ( )
32
32
}
33
33
34
34
private func setup( ) {
@@ -41,24 +41,75 @@ class DebugLabelViewController: ViewController<DebugLabelView> {
41
41
}
42
42
43
43
private func set( info: Debug . Label ) {
44
+
45
+ func update( _ style: AttributedString . Attribute . ParagraphStyle ) {
46
+ paragraphs. removeAll ( where: { $0 ~= style } )
47
+ paragraphs. append ( style)
48
+ }
49
+
50
+ func remove( _ style: AttributedString . Attribute . ParagraphStyle ) {
51
+ paragraphs. removeAll ( where: { $0 ~= style } )
52
+ }
53
+
44
54
if let value = info. lineSpacing {
45
- paragraphs. removeAll ( where: { $0 == . lineSpacing( 0 ) } )
46
- paragraphs. append ( . lineSpacing( value) )
55
+ update ( . lineSpacing( value) )
47
56
48
57
} else {
49
- paragraphs . removeAll ( where : { $0 == . lineSpacing( 0 ) } )
58
+ remove ( . lineSpacing( 0 ) )
50
59
}
51
60
if let value = info. lineHeightMultiple {
52
- paragraphs. removeAll ( where: { $0 == . lineHeightMultiple( 0 ) } )
53
- paragraphs. append ( . lineHeightMultiple( value) )
61
+ update ( . lineHeightMultiple( value) )
62
+
63
+ } else {
64
+ remove ( . lineHeightMultiple( 0 ) )
65
+ }
66
+ if let value = info. minimumLineHeight {
67
+ update ( . minimumLineHeight( value) )
68
+
69
+ } else {
70
+ remove ( . minimumLineHeight( 0 ) )
71
+ }
72
+ if let value = info. maximumLineHeight {
73
+ update ( . maximumLineHeight( value) )
74
+
75
+ } else {
76
+ remove ( . maximumLineHeight( 0 ) )
77
+ }
78
+ if let value = info. paragraphSpacing {
79
+ update ( . paragraphSpacing( value) )
80
+
81
+ } else {
82
+ remove ( . paragraphSpacing( 0 ) )
83
+ }
84
+ if let value = info. paragraphSpacingBefore {
85
+ update ( . paragraphSpacingBefore( value) )
86
+
87
+ } else {
88
+ remove ( . paragraphSpacingBefore( 0 ) )
89
+ }
90
+ if let value = info. firstLineHeadIndent {
91
+ update ( . firstLineHeadIndent( value) )
92
+
93
+ } else {
94
+ remove ( . firstLineHeadIndent( 0 ) )
95
+ }
96
+ if let value = info. headIndent {
97
+ update ( . headIndent( value) )
98
+
99
+ } else {
100
+ remove ( . headIndent( 0 ) )
101
+ }
102
+ if let value = info. tailIndent {
103
+ update ( . tailIndent( value) )
54
104
55
105
} else {
56
- paragraphs . removeAll ( where : { $0 == . lineHeightMultiple ( 0 ) } )
106
+ remove ( . tailIndent ( 0 ) )
57
107
}
58
108
container. set ( info: info)
109
+ updateText ( )
59
110
}
60
111
61
- private func update ( ) {
112
+ private func updateText ( ) {
62
113
container. set ( text: . init(
63
114
attributedString,
64
115
with: attributes + [ . paragraph( paragraphs) ]
@@ -121,37 +172,32 @@ class DebugLabelViewController: ViewController<DebugLabelView> {
121
172
}
122
173
123
174
@IBAction func lineSpacingSliderAction( _ sender: UISlider ) {
124
- paragraphs. removeAll ( where: { $0 == . lineSpacing( 0 ) } )
125
- paragraphs. append ( . lineSpacing( . init( sender. value) ) )
126
175
info. lineSpacing = . init( sender. value)
127
- update ( )
128
176
}
129
177
@IBAction func lineHeightMultipleSliderAction( _ sender: UISlider ) {
130
- paragraphs. removeAll ( where: { $0 == . lineHeightMultiple( 0 ) } )
131
- paragraphs. append ( . lineHeightMultiple( . init( sender. value) ) )
132
178
info. lineHeightMultiple = . init( sender. value)
133
- update ( )
134
179
}
135
-
136
180
@IBAction func minimumLineHeightSliderAction( _ sender: UISlider ) {
181
+ info. minimumLineHeight = . init( sender. value)
137
182
}
138
183
@IBAction func maximumLineHeightSliderAction( _ sender: UISlider ) {
184
+ info. maximumLineHeight = . init( sender. value)
139
185
}
140
-
141
186
@IBAction func paragraphSpacingSliderAction( _ sender: UISlider ) {
187
+ info. paragraphSpacing = . init( sender. value)
142
188
}
143
189
@IBAction func paragraphSpacingBeforeSliderAction( _ sender: UISlider ) {
190
+ info. paragraphSpacingBefore = . init( sender. value)
144
191
}
145
-
146
192
@IBAction func firstLineHeadIndentSliderAction( _ sender: UISlider ) {
193
+ info. firstLineHeadIndent = . init( sender. value)
147
194
}
148
-
149
195
@IBAction func headIndentSliderAction( _ sender: UISlider ) {
196
+ info. headIndent = . init( sender. value)
150
197
}
151
-
152
198
@IBAction func tailIndentSliderAction( _ sender: UISlider ) {
199
+ info. tailIndent = . init( sender. value)
153
200
}
154
-
155
201
}
156
202
157
203
extension DebugLabelViewController : UIScrollViewDelegate {
0 commit comments