Как изменить вид в SwiftUI - PullRequest
       19

Как изменить вид в SwiftUI

0 голосов
/ 12 июня 2019

Как я могу изменить вид после его использования?Например:

var body: some View {
    Button (action: {
        // Code to move button's position. self.offset(x:y:) doesn't work, Xcode says 'result of call to offset is unused'
    }) {
        Text("How to I alter the colour of this text?") // Change colour somewhere else in my script
            .background(Color.black)

    }
        .frame(alignment: .leading)

}

Мне нужно изменить представление после его создания.Поскольку все является представлением, от .frame до .background, разве мне не нужно ссылаться / удалять / изменять / добавлять их в стек?

Ответы [ 2 ]

3 голосов
/ 12 июня 2019

Изменение цвета - это изменение состояния.

Вы можете использовать оболочку свойства @State, которая является частью SwiftUI.

Подробнее об этом можно прочитать в отличном докладе WWDC 2019.:

Представляем SwiftUI: создание вашего первого приложения

struct ContentView: View {

    @State var someState: Bool = true

    var body: some View {
        Button (action: {
            // The state is toggled, and a redraw is triggered
            self.someState.toggle()
        }) {
        Text("How to I alter the colour of this text?")
            // Set color according to the state
            .foregroundColor(someState ? Color.black : Color.pink)
        }
        .frame(alignment: .leading)
    }

}

Когда происходит изменение @State, представление body перерисовывается.

1 голос
/ 12 июня 2019

SwiftUI требует полного изменения шаблонов мышления по сравнению с использованием UIKit.

«Представление», на которое вы ссылаетесь, на самом деле не является представлением. Это набор инструкций о том, как визуализировать что-либо на экране. Таким образом, вы не можете получить к нему доступ с помощью ссылки и т. Д.

Чтобы изменить внешний вид представления, вы можете использовать модификаторы для него при его создании.

Например ...

Button(action: {}) {
    Text("Hello world!")
        .foregroundColor(.yellow)
}

Это действительно зависит от того, что вы хотите с ним делать.

Сказав это. Понятно, что вы не потратили время на просмотр видео WWDC или на изучение учебных пособий SwiftUI.

Я бы порекомендовал сделать это, прежде чем идти дальше.

https://developer.apple.com/tutorials/swiftui/

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...