Как SwiftUI устанавливает интервал между подчеркиванием и текстом? - PullRequest
2 голосов
/ 04 августа 2020

Код для установки подчеркивания , Я хочу увеличить расстояние между текстом и подчеркиванием.

 Text("underline text")
 .underline()

Ответы [ 3 ]

2 голосов
/ 04 августа 2020

Подчеркивание - это функция шрифта, вы можете настроить его, просто нарисовав линию в любом месте

демо

var body: some View {
    HStack {
        Text("Before")
        Text("underline text")
            .overlay(
                Rectangle().frame(height: 1).offset(y: 4)
                , alignment: .bottom)
        Text("after.")
    }
}
1 голос
/ 04 августа 2020

Вы можете создать собственное представление, которое принимает текст и отступы подчеркивания в качестве параметров

struct UnderlinedText: View {

   var text: String
   var underlinePadding: CGFloat

   var body: some View {
       VStack (spacing: underlinePadding) {
           Text(text)
           GeometryReader { proxy in
               Rectangle()
                   .frame(width: proxy.size.width, height: 1)
           }
        }
    }
}

и использовать его следующим образом

UnderlinedText(text: "Hello underlined text", underlinePadding: 10.0)
0 голосов
/ 04 августа 2020

Как насчет использования настраиваемого представления вместо .underline?

struct MyUnderline: View {
      let color: Color = .black
      let height: CGFloat = 1
      var body: some View {
          Rectangle()
            .fill(color)
            .frame(height: height)
      }
}    
Text("underline text")
MyUnderline()
  .padding(.top, -10)
...