Как получить исходные цвета градиента LinearGradient?

#swiftui

#swiftui

Вопрос:

Предположим, у нас есть LinearGradient экземпляр, есть ли какой-либо способ получить исходный массив цветов, используемых в этом градиенте?

Или, есть ли способ изменить цвета / направление, используемые в этом градиенте напрямую?

Комментарии:

1. Нет. LinearGradient это отображаемый вид, Gradient это модель, поэтому передавайте модель здесь и там.

2. @Asperi Возможно ли изменить направление линейного градиента?

Ответ №1:

есть ли способ напрямую изменить цвета / направление, используемые в этом градиенте?

SwiftUI является реактивным, поэтому сделайте градиент зависимым от состояния и измените состояние — просмотр будет перерисовываться, например

 struct DemoReverseGradient: View {
    @State private var reversed = false

    var body: some View {
        LinearGradient(gradient: Gradient(stops: [
            .init(color: Color.red, location: 0),
            .init(color: Color.blue, location: 1)
        ]),     startPoint: reversed ? .leading : .trailing,
                 endPoint: reversed ? .trailing : .leading)
        .frame(height: 200)
        .onTapGesture {
            self.reversed.toggle()
        }
    }
}