SwiftUI Как мне получить BackgroundColor под текстом/представлением, чтобы я мог инвертировать цвет переднего плана?IOS

Программируем под IOS
Ответить Пред. темаСлед. тема
Anonymous
 SwiftUI Как мне получить BackgroundColor под текстом/представлением, чтобы я мог инвертировать цвет переднего плана?

Сообщение Anonymous »

Я пытался найти решение для динамического определения цвета фона / цвета под представлением, которое вы хотите изменить, поскольку мне может потребоваться иметь читаемый текст поверх изображения, не прибегая к использованию среднего цвета изображения для определения правильный цвет для текста, потому что некоторые изображения могут иметь больше светлых цветов в определенных местах изображения, наоборот, с темными цветами, поэтому есть ли способ получить цвет в определенной координате, а затем использовать это, чтобы определить, каким должен быть цвет текста , попробовал использовать Grok и т. д., чтобы сгенерировать базис, который помог мне до сих пор, но в GeomertyReader нет функции цвета, поскольку он хочет, чтобы я использовал этот ответ от Грока.

Код: Выделить всё

struct BackgroundColorKey: PreferenceKey {
static var defaultValue: Color? = nil

static func reduce(value: inout Color?, nextValue: () -> Color?) {
value = nextValue()
}
}

struct BackgroundColorReader: View {
var body: some View {
GeometryReader { geometry in
Color.clear
.preference(key: BackgroundColorKey.self, value: geometry.color(at: geometry.frame(in: .local).center))
}
}
}

struct DynamicTextColor: View {
@State private var backgroundColor: Color? = nil

var body: some View {
VStack {
Text("Your Text Here")
.foregroundColor(backgroundColor?.luminance < 0.5 ? .white : .black) // Invert based on luminance
.background(
BackgroundColorReader()
.onPreferenceChange(BackgroundColorKey.self) { newColor in
self.backgroundColor = newColor
}
)
}
}
}
Это код, который он сгенерировал, а также бесконечно искал в Интернете, если у кого-то еще не было решения, так есть ли фреймворк или решение, которое можно было бы использовать как для macOS, так и для iOS.
Это пример, который я пытаюсь решить в SwiftUI, который у меня ниже
Изображение


Подробнее здесь: https://stackoverflow.com/questions/792 ... w-so-i-can
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «IOS»