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
相关产品推荐
相关产品推荐

