@@ -33,6 +33,12 @@ open class NextGrowingTextView: UIView {
33
33
/// Hides typed text one or more.
34
34
case onTypedText
35
35
}
36
+
37
+ public enum PlaceholderHorizontalLayout {
38
+ case leading
39
+ case center
40
+ case trailing
41
+ }
36
42
37
43
public var minLines : Int
38
44
public var maxLines : Int
@@ -41,16 +47,19 @@ open class NextGrowingTextView: UIView {
41
47
public var isFlashScrollIndicatorsEnabled : Bool = false
42
48
43
49
public var placeholderHidingMode : PlaceholderHidingMode
50
+ public var placeholderHorizontalLayout : PlaceholderHorizontalLayout
44
51
45
52
public init (
46
53
placeholderHidingMode: PlaceholderHidingMode = . onTypedText,
54
+ placeholderHorizontalLayout: PlaceholderHorizontalLayout = . leading,
47
55
minLines: Int = 1 ,
48
56
maxLines: Int = 3 ,
49
57
isAutomaticScrollToBottomEnabled: Bool = true ,
50
58
isFlashScrollIndicatorsEnabled: Bool = false
51
59
) {
52
60
53
61
self . placeholderHidingMode = placeholderHidingMode
62
+ self . placeholderHorizontalLayout = placeholderHorizontalLayout
54
63
self . minLines = minLines
55
64
self . maxLines = maxLines
56
65
self . isAutomaticScrollToBottomEnabled = isAutomaticScrollToBottomEnabled
@@ -163,12 +172,27 @@ open class NextGrowingTextView: UIView {
163
172
NSLayoutConstraint . activate ( [
164
173
165
174
placeholderLabel. topAnchor. constraint ( equalTo: topAnchor, constant: inset. top) ,
166
- placeholderLabel. leftAnchor. constraint ( equalTo: leftAnchor, constant: inset. left + 4 ) ,
167
- placeholderLabel. rightAnchor. constraint ( lessThanOrEqualTo: rightAnchor, constant: - ( inset. right + 4 ) ) ,
168
175
placeholderLabel. bottomAnchor. constraint ( lessThanOrEqualTo: bottomAnchor, constant: - inset. bottom) ,
169
-
176
+
170
177
] )
171
178
179
+ switch configuration. placeholderHorizontalLayout {
180
+ case . leading:
181
+ NSLayoutConstraint . activate ( [
182
+ placeholderLabel. leadingAnchor. constraint ( equalTo: leadingAnchor, constant: inset. left + 4 ) ,
183
+ placeholderLabel. trailingAnchor. constraint ( lessThanOrEqualTo: trailingAnchor, constant: - ( inset. right + 4 ) ) ,
184
+ ] )
185
+ case . center:
186
+ NSLayoutConstraint . activate ( [
187
+ placeholderLabel. centerXAnchor. constraint ( equalTo: centerXAnchor, constant: 0 ) ,
188
+ ] )
189
+ case . trailing:
190
+ NSLayoutConstraint . activate ( [
191
+ placeholderLabel. leadingAnchor. constraint ( greaterThanOrEqualTo: leadingAnchor, constant: inset. left + 4 ) ,
192
+ placeholderLabel. trailingAnchor. constraint ( equalTo: trailingAnchor, constant: - ( inset. right + 4 ) ) ,
193
+ ] )
194
+ }
195
+
172
196
// refresh with current state and new configuration
173
197
update ( by: state)
174
198
0 commit comments