使用后如何修改视图? 例如:
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
都是视图,所以我不需要引用/删除/修改/添加它们到堆栈中吗?
答案 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教程。
我建议您先进行这些操作。