Znalazłem nowy Vstack, Hustack i Stack, bardziej mylący do użycia niż poprzednie metody UistackView. Czy istnieje sposób na edycję określonych właściwości, takich jak kolor, o istniejącego stosu programowo z innej funkcji?

Na przykład,

var body: View {
    VStack(alignment: .leading) {
        Text("Testing.")
        .frame(height: 200, alignment: .center)
    }
}

Gdybym miał taki kod, jak mogę edytować zawartość .frame, która należy do Ciała Vstack? W UIKIT mogę to zrobić, ponieważ nowy UistackView jest zasadniczo zmienną, do której można uzyskać dostęp. Było to bardzo przydatne, ponieważ mogłem utworzyć inne metody, które reagują na wejście użytkownika i zdarzenia, aby zmienić pewne właściwości innej zmiennej UistackView. Czy zalecasz również naukę Swiftui? Czy istnieją pewne "wolności" z UIKIT, które są przestarzały w Swiftui ze względu na wygodę?

0
Wonjae Oh 15 marzec 2021, 10:06

1 odpowiedź

Najlepsza odpowiedź

Nie masz odniesienia do żadnych elementów wewnątrz body, ale zamiast tego możesz zaktualizować zawartość za pomocą zmiennych wiązania / stanu. Na przykład:

@State var update: Bool = false

var body: some View {
    VStack(alignment: .leading) {
        Button(action: {
            update.toggle()
        }, label: {
            Text("Testing")
        })
        .frame(height: update ? 200 : 100, alignment: .center)
    }
}

W powyższym kodzie, gdy aktualizujesz zmienną update wymusza nasiftui, aby odświeżyć ciało

0
Mike Haydan 15 marzec 2021, 07:18