【问题标题】:SwiftUI Update text elementsSwiftUI 更新文本元素
【发布时间】:2021-01-03 21:57:20
【问题描述】:

我想在点击手势事件时更新 Swift / SwiftUI 中的文本元素,但找不到可行的解决方案。如有任何帮助,我将不胜感激。

这是我的代码:

import SwiftUI

struct TestView: View {

    var body: some View {
        Text("Text to update")
           .onTapGesture {
              print("Tapped Item!")
              //New String "Updated String"
        }
    }
}

 struct TestView_Previews: PreviewProvider {
     static var previews: some View {
       TestView()
    }
 }

【问题讨论】:

    标签: ios swift swiftui


    【解决方案1】:

    您可以为您的字符串创建一个@State 变量:

    struct TestView: View {
        @State private var text = "Text to update"
    
        var body: some View {
            Text(text)
                .onTapGesture {
                    print("Tapped Item!")
                    text = "Updated String"
                }
        }
    }
    

    【讨论】:

      【解决方案2】:

      使用@State 属性来存储文本。对 @State 属性的任何更改都会强制 UI 重新绘制,因此它们在屏幕上的任何位置都会得到更新。

      @State var textToUpdate: String = "Text to update"
      
      var body: some View {
          Text(textToUpdate)
             .onTapGesture {
              self.textToUpdate = "Updated Text"
          }
      }
      

      【讨论】:

        猜你喜欢
        • 2021-12-16
        • 2012-01-19
        • 1970-01-01
        • 2020-03-22
        • 2020-10-01
        • 1970-01-01
        • 2015-06-08
        • 1970-01-01
        • 2014-04-17
        相关资源
        最近更新 更多