如何在 TextField swiftUI 中加粗文本?

Abh*_*was 24 uikit ios swift swiftui

SwiftUI (XCODE: 11.2.1)中的文本字段没有内置的字体粗细修饰符。我们如何在不将 UITextField 扩展为 UIViewRepresentable 的情况下引入字体粗细?

小智 41

使用适用于 SwiftUI TextField 的标准字体大小选项和粗细的一般方法。例如:

TextField("Name", text: $name)
  .font(Font.headline.weight(.light))
Run Code Online (Sandbox Code Playgroud)

可用的标准尺寸选项(最小到最大):

.caption
.footnote
.subheadline
.callout
.body
.headline
.title
.largeTitle
Run Code Online (Sandbox Code Playgroud)

可用的标准字体粗细(从轻到重):

.ultralight
.thin
.light
.regular
.medium
.semibold
.bold
.heavy
.black
Run Code Online (Sandbox Code Playgroud)


mah*_*han 24

iOS 15+

SwiftUI 支持 Markdown。

在文本/字符周围添加双星号 (**) 以使其加粗。

Text("**This text is bold**")
Run Code Online (Sandbox Code Playgroud)

要强调文本,请使用下划线

Text("_This text is italic_")
Run Code Online (Sandbox Code Playgroud)

  • 重要提示:这不是 Swift 功能,而是 iOS 功能!**它仅适用于 iOS 15!** 旧版本的用户将看到原始 Markdown。 (6认同)

Ram*_*vam 19

import SwiftUI

struct ContentView: View {
    @State var TextValue: String = "Hello"

    var body: some View {
        VStack {
            TextField("placeholder", text: $TextValue)
            .padding(.horizontal, 50)
                .font(.system(size: 30, weight: .heavy, design: .default))
        }
    }
}

struct ContentView_Previews: PreviewProvider {
    static var previews: some View {
        ContentView()
    }
}
Run Code Online (Sandbox Code Playgroud)

在此处输入图片说明


小智 12

TextField("Name", text: $name)
    .font(Font.body.bold())
Run Code Online (Sandbox Code Playgroud)


A.I*_*.A. 11

iOS 13.0+、macOS 10.15+、tvOS 13.0+、watchOS 6.0+ 的更新方法是:

.fontWeight(.bold)
Run Code Online (Sandbox Code Playgroud)

  • 这不适用于“TextField”,因此它并不是问题的真正答案。 (3认同)
  • 我的错。`fontWeight` 适用于文本视图,但不适用于文本字段,因为它们不公开其标签视图。因此 `.font(Font.body.bold())` 仍然是最简单的解决方案:( (2认同)