Как отобразить пользовательский интерфейс сравнения с AttributedStrings

Я работаю над функцией, которая сравнивает новый ввод со старым вводом. Я бы хотел, чтобы это выглядело как git diff, как это видно в битбакете или github и т. д.

В настоящее время у меня есть массив символов с префиксом относительно того, были ли они добавлены или удалены. Теперь я застрял в отображении каждой из этих строк с другим цветом фона, сохраняя при этом некоторую нормальную структуру, похожую на предложение. Приведенный ниже код просто создает новый элемент Text() в новой строке, который не читается.

      VStack {
    ForEach(diff.indices, id: \.self) { index in
        Text(diff[index]).foregroundColor(diff[index].hasPrefix("+add") ? .green : .black)
    }
}

Люди приводят примеры использования «+» для объединения элементов Text(), но я не могу этого сделать в ForEach.

Мысли?

0 ответов

Другие вопросы по тегам