Виды стилей, переданные в пользовательский вид в SwiftUI - PullRequest
0 голосов
/ 19 февраля 2020

Я хотел бы иметь возможность использовать пользовательский 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)
}

Идея состоит в том, чтобы равномерно располагать элементы в навигационной панели.

Я думал об использовании массива представлений и передаче его в качестве свойства, но это выглядит ужасно для меня. Есть ли способ сделать то же, что и в моем примере выше, или какой-нибудь лучший способ сделать это?

1 Ответ

0 голосов
/ 19 февраля 2020

Как это: -

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)
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...