Выделение частей текста жирным шрифтом в SwiftUI - PullRequest
0 голосов
/ 08 мая 2020

Мне было интересно, как в SwiftUI сделать только части текста полужирными, а остальные оставить «обычными».

Сейчас у меня есть:

Text("Coronavirus Disease of 2019")

и я хочу его распечатать CO rona Vi rus D isease из 20 19 и не смогли выделить только некоторые части жирным шрифтом.

Ответы [ 2 ]

1 голос
/ 08 мая 2020

Если вам не нужно переводить, здесь возможен быстрый вариант

demo

Text("CO").bold() + Text("rona") + Text("VI").bold() + 
    Text("rus Disease of 20") + Text("19").bold()

альтернатива - использовать NSAttributedString с UIViewRepresentable из UILabel.

0 голосов
/ 08 мая 2020

Swift 5, iOS 13

Эта статья посвящена изменению цвета текста символов, но вы также можете применить метод, который она использует [битовая маска], чтобы сделать некоторые символы полужирными, fla sh, анимировать что угодно?

https://medium.com/@marklucking / an-Интересно-Challenge-with-swiftui-9ebb26e77376

Две основные части, на которых вам нужно сосредоточиться, это ..

ForEach((0 ..< letter.count), id: \.self) { column in
          Text(letter[column])
            .foregroundColor(colorCode(gate: Int(self.gate), no: column) ? Color.black: Color.red)
            .font(Fonts.futuraCondensedMedium(size: fontSize))

        }

А этот для маскировки текста ...

func colorCode(gate:Int, no:Int) -> Bool {

  let bgr = String(gate, radix:2).pad(with: "0", toLength: 16)
  let bcr = String(no, radix:2).pad(with: "0", toLength: 16)
  let binaryColumn = 1 << no - 1

  let value = UInt64(gate) & UInt64(binaryColumn)
  let vr = String(value, radix:2).pad(with: "0", toLength: 16)

  print("bg ",bgr," bc ",bcr,vr)
  return value > 0 ? true:false
}
...