SwiftUI列表标题和副标题

4

我的目标是拥有一个加粗的标题和非加粗的子标题的“列表”部分,这是我无法实现的。因此,我尝试使用包含部分粗体文本和部分普通非粗体文本的Text视图制作标题。

我尝试使用NSAttributedString来完成此操作,它适用于UILabel,但似乎不适用于swiftUI的Text对象。

我制作标题的方法如下:

Section(header: Text(docSection.formattedHeader)) {
    ...

docSection.formattedHeader 是一个 NSAttributedString,其中一半是粗体,一半是普通字体,用 \n 分隔。

然而,这时我会收到以下错误:

Initializer 'init(_:)' requires that 'NSAttributedString' conform to 'StringProtocol'

有没有任何方法可以实现这个目标?

1个回答

7

由于目前 NSAttributedStringSwiftUI 不兼容,因此您应该使用 Text。但对于 Section,您可以使用任何 View。所以为什么不像这样使用一个 stackView

Section(header:
    VStack(alignment: .leading) {
        Text("Header").fontWeight(.bold)
        Text("Subheader").fontWeight(.regular)
    }
) {
    Text("Content")
}

同样,您可以使用HStack或任何其他组合视图。


谢谢!这就解决了问题,不知道为什么我以为只能使用文本作为标题。 - Quinn
可能是因为旧的 UITableView 方法:titleForHeaderInSection... - Mojtaba Hosseini
@Quinn,你知道如何在_List_项内部显示标题和子标题吗?尝试使用 List{ ForEach{ VStack{ Text Text }}} 不能编译... - Async-

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接