如何将文本固定到 UITextView 的最顶部?
How do I pin the Text to the very top of the UITextView?
我有一个自定义 UITextView
,它会根据用户输入的文本进行拉伸。
第一张图片中的一切看起来都不错:
但是,由于 .offset
:
,当我写一些文字时,我的占位符会向下移动
代码片段:
VStack (alignment: .leading) {
VStack {
DynamicTextField(object: dynamicSize, text: $text, state: $state, placeholder: placeholder)
.frame(height: self.dynamicSize.size < 100 ? self.dynamicSize.size : 100)
.padding(.top, isHideHolder ? 15 : 0)
.background(
Text("placeholder")
.scaleEffect(isHideHolder ? 0.8: 1)
.offset(x: isHideHolder ? -14 : 0, y: isHideHolder ? -22 : 0)
.foregroundColor(.gray)
,
alignment: .leading
)
}
.padding()
.background(Color.white)
.cornerRadius(12)
}
是否可以通过某种方式修复此文本使其不再移动?
我的解决方案有解决方法吗?预先感谢您的提示!
我认为只有将文本移出 VStack
才会有所帮助:
VStack (alignment: .leading) {
VStack(alignment: .leading) {
if isHideHolder {
Text(placeholder)
.foregroundColor(.gray.opacity(0.5))
.padding(.horizontal, 4)
}
DynamicTextField(object: dynamicSize, text: $text, state: $state, placeholder: placeholder)
.frame(height: self.dynamicSize.size < 100 ? self.dynamicSize.size : 100)
.background(
Text("placeholder")
.scaleEffect(isHideHolder ? 0.8: 1)
.foregroundColor(.gray)
,
alignment: .leading
)
}
.padding()
.background(Color.white)
.cornerRadius(12)
如果我没有理解错的话。
我有一个自定义 UITextView
,它会根据用户输入的文本进行拉伸。
第一张图片中的一切看起来都不错:
但是,由于 .offset
:
代码片段:
VStack (alignment: .leading) {
VStack {
DynamicTextField(object: dynamicSize, text: $text, state: $state, placeholder: placeholder)
.frame(height: self.dynamicSize.size < 100 ? self.dynamicSize.size : 100)
.padding(.top, isHideHolder ? 15 : 0)
.background(
Text("placeholder")
.scaleEffect(isHideHolder ? 0.8: 1)
.offset(x: isHideHolder ? -14 : 0, y: isHideHolder ? -22 : 0)
.foregroundColor(.gray)
,
alignment: .leading
)
}
.padding()
.background(Color.white)
.cornerRadius(12)
}
是否可以通过某种方式修复此文本使其不再移动? 我的解决方案有解决方法吗?预先感谢您的提示!
我认为只有将文本移出 VStack
才会有所帮助:
VStack (alignment: .leading) {
VStack(alignment: .leading) {
if isHideHolder {
Text(placeholder)
.foregroundColor(.gray.opacity(0.5))
.padding(.horizontal, 4)
}
DynamicTextField(object: dynamicSize, text: $text, state: $state, placeholder: placeholder)
.frame(height: self.dynamicSize.size < 100 ? self.dynamicSize.size : 100)
.background(
Text("placeholder")
.scaleEffect(isHideHolder ? 0.8: 1)
.foregroundColor(.gray)
,
alignment: .leading
)
}
.padding()
.background(Color.white)
.cornerRadius(12)
如果我没有理解错的话。