我希望能够使用这样的自定义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)
}
这个想法是在导航栏中有均匀间隔的项目。
我曾想过使用一组视图并将其作为属性传递,但这对我来说很糟糕。有没有像上面的例子一样的方法,或者有更好的方法?
像这样:-
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)
}
}