样式视图传递到SwiftUI中的自定义视图



我希望能够使用这样的自定义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)
}
}

最新更新