如何在SwiftUI中更改视图

时间:2019-06-12 12:26:41

标签: swift swiftui

使用后如何修改视图? 例如:

2

实例化后,我需要修改一个View。因为从var body: some View { Button (action: { // Code to move button's position. self.offset(x:y:) doesn't work, Xcode says 'result of call to offset is unused' }) { Text("How to I alter the colour of this text?") // Change colour somewhere else in my script .background(Color.black) } .frame(alignment: .leading) } .frame都是视图,所以我不需要引用/删除/修改/添加它们到堆栈中吗?

2 个答案:

答案 0 :(得分:2)

颜色的改变就是状态的改变。

您可以使用属性包装器@State,它是SwiftUI的一部分。

有关WWDC 2019精彩演讲的更多信息:

Introducing SwiftUI: Building Your First App

struct ContentView: View {

    @State var someState: Bool = true

    var body: some View {
        Button (action: {
            // The state is toggled, and a redraw is triggered
            self.someState.toggle()
        }) {
        Text("How to I alter the colour of this text?")
            // Set color according to the state
            .foregroundColor(someState ? Color.black : Color.pink)
        }
        .frame(alignment: .leading)
    }

}

@State发生更改时,视图body被重绘。

答案 1 :(得分:1)

SwiftUI与使用UIKit相比需要彻底改变思维模式。

您所指的“视图”实际上不是视图。这是一组有关如何在屏幕上渲染内容的指令。因此,您无法通过参考等访问它。

要更改视图的外观,可以在创建视图时对其使用修饰符。

例如...

Button(action: {}) {
    Text("Hello world!")
        .foregroundColor(.yellow)
}

这真的取决于您要如何处理。

话虽如此。显然,您没有花任何时间观看WWDC视频或完成SwiftUI教程。

我建议您先进行这些操作。

https://developer.apple.com/tutorials/swiftui/