我用下面的代码实现了一个自定义步进器:
struct ContentView: View {
@State private var count: Int? = 0
var body: some View {
HStack {
if let amount = count {
Button {
count = amount - 1
} label: {
Image(systemName: "minus")
.symbolVariant(.circle.fill)
.symbolRenderingMode(.palette)
.foregroundStyle(.background, .tint)
}
Text(amount.formatted())
.monospacedDigit()
.fixedSize()
Button {
count = amount + 1
} label: {
Image(systemName: "plus")
.symbolVariant(.circle.fill)
.symbolRenderingMode(.palette)
.foregroundStyle(.background, .tint)
}
}
}
.buttonRepeatBehavior(.enabled)
}
}
字符串
我希望当我按下其中一个按钮时,计数器会重复地增加或减少。然而,它只增加或减少一次。也就是说,如果我将count
设置为非可选,并更改操作以直接修改它,则一切都会按预期工作
在我的应用程序中,我的数据模型比能够重构条件更复杂,那么我如何才能做到这一点呢?
我已经尝试过为每个按钮分配一个静态id
,但没有用
1条答案
按热度按时间7d7tgy0s1#
将
if
中的视图提取到另一个视图:字符串
在
ContentView
中,您可以从count
获得一个非可选的绑定,如下所示:型