You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Swift中如何格式化Table列表头(设置字体大小与文本居中)

解决SwiftUI表格表头格式化问题

要修改表格表头的字体大小并设置文本居中,你可以通过自定义表头视图实现,利用SwiftUI的TableColumn的header修饰符替换默认表头样式即可。以下是修改后的完整代码:

struct SummaryTable: View {
    private var localArray: [TradingDayPrices]
    init(passedInArray: [TradingDayPrices]) {
        self.localArray = passedInArray
    }
    
    var body: some View {
        let funds: [Fund] = GetSummaryTable(localArray: localArray)
        Table(funds) {
            TableColumn("Index Fund") { value in
                Text(value.name)
                    .padding(.vertical, 2)
            }
            .width(90)
            .header {
                Text("Index Fund")
                    .font(.system(size: 14)) // 自定义表头字体大小
                    .frame(maxWidth: .infinity, alignment: .center)
            }
            
            TableColumn("Shares") { value in
                HStack {
                    Spacer()
                    Text(value.shares)
                    Spacer()
                }
            }
            .width(90)
            .header {
                Text("Shares")
                    .font(.system(size: 14))
                    .frame(maxWidth: .infinity, alignment: .center)
            }
            
            TableColumn("Share Price") { value in
                HStack {
                    Spacer()
                    Text(value.sharePrice)
                    Spacer()
                }
            }
            .width(90)
            .header {
                Text("Share Price")
                    .font(.system(size: 14))
                    .frame(maxWidth: .infinity, alignment: .center)
            }
            
            TableColumn("Total") { value in
                HStack {
                    Spacer()
                    Text(value.total)
                }
            }
            .width(110)
            .header {
                Text("Total")
                    .font(.system(size: 14))
                    .frame(maxWidth: .infinity, alignment: .center)
            }
            
            TableColumn("One Year Gain") { value in
                HStack {
                    Spacer()
                    Text(value.percentChange)
                    Spacer()
                }
            }
            .width(90)
            .header {
                Text("One Year Gain")
                    .font(.system(size: 14))
                    .frame(maxWidth: .infinity, alignment: .center)
            }
        }
        .tableStyle(.inset(alternatesRowBackgrounds: true))
        .padding([.leading, .trailing], 185)
        .padding([.top], 30)
        .padding([.bottom], 700)
    }
}

关键修改说明:

  • 给每个TableColumn添加.header修饰符,传入自定义的Text视图
  • 通过.font()设置表头字体大小(示例用system(size:14),可按需调整)
  • 用.frame(maxWidth: .infinity, alignment: .center)让表头文本在列宽范围内居中显示

注意:该方案要求系统版本为iOS 16+ / macOS 13+,TableColumn的header修饰符是在这些版本中引入的。

内容的提问来源于stack exchange,提问作者Chris

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.03 09:06:38