Не могу использовать свойство объекта для создания цвета в SwiftUI - PullRequest
0 голосов
/ 17 января 2020

У меня есть приложение SwiftUI iOS, которое извлекает данные из локального файла JSON.

Все работает правильно, за исключением того, что в одном представлении я не могу использовать свойство объекта, переданного в для создания нового Color.

struct CategoryItem: View {
    var item: Item
    var body: some View {
        VStack(alignment: .leading) {
            ZStack {
                Rectangle()
                    .foregroundColor(Color(red: item.backgroundColor[0] / 255, green: 242 / 255, blue: 242 / 255))

По какой-то причине item.backgroundColor[0] возвращается правильно, если я распечатываю его с использованием String(item.backgroundColor[0]), поэтому значение есть, но вычисление выдает ошибка. Я подозреваю, что это как-то связано с тем фактом, что Color является вычисляемым свойством, но я не уверен, почему возникает ошибка.

Любая помощь будет принята с благодарностью!

1 Ответ

0 голосов
/ 22 января 2020

Я понял.

Оказывается, что item.backgroundColor[0] нужно указать как Double(), хотя целые числа c (например, 255) выражены как целые числа.

Решением было обернуть все в Double(), используя такую ​​функцию:

func colorsFromProperty(colors: [Double]) -> Color {
  return Color(red: Double(colors[0] / 255), green: Double(colors[1] / 255), blue: Double(colors[2] / 255))
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...