我想做的是使用自定义View
,如下所示:传递给Nav
的视图的数量或类型可以不同。
Nav(
width: 200
) {
NavButton("Item 1", action: {self.someAction}, isActive: true)
NavButton("Item 1", action: {self.someAction}, isActive: false)
NavTitle("Page 1")
}
它会产生与以下结果相同的结果:
HStack {
NavButton("Item 1", action: {self.someAction}, isActive: true)
.frame(width: 200 / 3)
NavButton("Item 1", action: {self.someAction}, isActive: false)
.frame(width: 200 / 3)
NavTitle("Page 1")
.frame(width: 200 / 3)
}
想法是在导航栏中均匀放置项目。
我曾考虑过使用视图数组并将其作为属性传递,但是这对我来说似乎很糟糕。有没有一种方法可以与上面的示例相同,或者有更好的方法可以做到这一点?
答案 0 :(得分:0)
喜欢这个:-
import SwiftUI
struct ContentView: View {
var body: some View {
HStack {
CustomText(text: "kjahsfgdi f")
Spacer()
CustomText(text: "abc")
Spacer()
CustomText(text: "abc")
}
}
}
struct ContentView_Previews: PreviewProvider {
static var previews: some View {
ContentView()
}
}
struct CustomText : View{
@State var text: String
var body: some View {
Text(text)
.lineLimit(nil)
.frame(width: 100, height: nil, alignment: .center)
}
}