问题描述
我是 swiftUI 的新手。我想要像这样带有浮动标签的 TextFeild。我用matchedGeometryEffect() 尝试过,但我没有得到足够的。不知道是什么bug它在没有动画的情况下工作完美。
当我添加动画时,情况会变得更糟
这是我的代码
struct TextFeildView: View {
private var placeHolder: String = ""
@Binding private var text: String
@Namespace private var titleNameSpace
init(_ placeHolder: String,text: Binding<String> ) {
self.placeHolder = placeHolder
self._text = text
}
var body: some View {
vstack() {
HStack {
Text(placeHolder)
.hidden(text == "")
.animation(.default)
.matchedGeometryEffect(id: "titleNameSpace",in: titleNameSpace)
Spacer()
}.padding(.horizontal,32)
vstack {
ZStack(alignment: .leading) {
Text(placeHolder)
.hidden(text != "")
.animation(.default)
.matchedGeometryEffect(id: "titleNameSpace",in: titleNameSpace)
TextField("",text: $text)
}
Color.gray
.frame(width: screenFrame.Width - 64,height: 1,alignment: /*@START_MENU_TOKEN@*/.center/*@END_MENU_TOKEN@*/)
}.padding(.horizontal,32)
}
}
}
struct TextFeildView_orignal: View {
@State var text : String = ""
var body: some View {
TextFeildView("PlaceHolder",text: $text)
}
}
struct TextFeildView_Previews: PreviewProvider {
static var previews: some View {
TextFeildView_orignal()
}
}
请帮帮我
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)