目标:根据所选对象(图像,文本,形状)切换状态的工具栏
我做了什么:
iimport SwiftUI
struct ToolbarMaster : View {
@State var showtoolbar = false
var toolbarmaster: [ToolbarBezier] = []
var body: some View {
HStack {
Spacer()
VStack {
Button(action: {self.showtoolbar.toggle() }) {
Image(systemName: "gear")
}
.padding(.leading)
Image("dog")
Text("Im a text")
.font(.largeTitle)
.color(.black)
Path(ellipseIn: CGRect(x: 0, y: 0, width: 100, height: 100))
.fill(Color.black)
}
NavigationView {
ZStack {
ToolbarBezier()
ToolbarArtwork()
}
.navigationBarTitle(Text("Toolbar Name"), displayMode: .inline)
}
.frame(width: 320.0)
}
}
}
在选择其他对象时如何更改状态?
我需要以动态方式(而不是硬编码)进行操作,以便当任何对象是图像时,它将显示图像工具栏,依此类推。
答案 0 :(得分:0)
我会这样:
@State
布尔变量@State private var textSelected = false
.onTap
事件:Text("Tap me!")
.tapAction {
self.textSelected = true
}
if self.textSelected {
self.showTextToolbarContent()
}
当然,showTextToolbarContent()
是一个局部函数,它返回一个some View
以及专门用于文本选择的工具栏内容。
这显然只是一个简单的例子。在您的实际实现中,您可能会将布尔数组用于“选择”状态,并将另一个状态var用于当前选择的视图。