【问题标题】:String Interpolation with Text View and Textfield in Swiftui在 Swiftui 中使用文本视图和文本字段进行字符串插值
【发布时间】:2020-09-23 14:47:28
【问题描述】:

您好,我想知道是否有任何方法可以在 Swiftui 中使用文本字段和文本进行字符串插值。喜欢

Text("hi \(TextField("Enter your name", $name)")

【问题讨论】:

    标签: swiftui


    【解决方案1】:

    你可以试试下面的代码

    struct ContentView: View {
        @State private var name = ""
        var body: some View {
            VStack{
                TextField("Enter your name", text: $name)
                Text("Hi \(name)")
            }
        }
    }
    

    希望这是你想要的

    【讨论】:

    • 您好,谢谢。反正有没有让用户在 hi 旁边而不是上面输入名称?
    【解决方案2】:

    如果你真的想这样做,你可以像这样将你的语句放在一个 Hstack 中:

    import SwiftUI
    
    struct SwiftUIView: View {
        @State var name = ""
        var body: some View {
            HStack {
                Text("Hi")
                TextField("Name", text: $name)
                    .frame(width: (name.isEmpty ? 45 : 0) + CGFloat(name.count) * 9)
                Text("blabla")
            }
        }
    }
    

    注意:这会给你一个动态的变化,但不是完美的,因为每个字符的大小不同,最后你会得到一个更大的空白。我在这里只选择 9 作为字符宽度。我仍然认为拥有一个额外的 Textfield 并稍后使用该变量是更好的选择。

    【讨论】:

    • 嗨,这是我当前的解决方案,但我希望根据文本字段中的文本更改文本字段的大小。目前文本字段的大小保持与占位符文本相同的大小,而不是动态变化
    猜你喜欢
    • 1970-01-01
    • 2020-12-20
    • 2021-07-11
    • 1970-01-01
    • 1970-01-01
    • 2019-07-26
    • 1970-01-01
    • 1970-01-01
    • 2020-07-27
    相关资源
    最近更新 更多