在 SwiftUI 中,特别是对于 iPad 设备,如何更改 Table 的宽度?

问题描述 投票:0回答:1

我有以下代码可以在 iPad 中显示表格

    Table(users) {
        TableColumn("Employee ID") { user in
            Text(user.employeeId)
        }
        .width(ideal: 30.0)
                 
        TableColumn("Name") { user in
            Text(user.displayName)
        }
        .width(ideal: 30.0)
                
        TableColumn("Email") { user in
            Text(user.email)
        }
        .width(ideal: 150.0)
                
        TableColumn("On Board") { user in
            Text(DateFmt.shortDate.string(from: user.onboardDate))
        }
        .width(ideal: 40.0)
    }

它工作完美,只是 width() 根本不起作用。不管我输入什么数字。我也尝试了

min
max
,没有效果。

很明显,对于电子邮件等属性,我需要更宽的列,但列宽似乎总是在列之间均匀划分。

如何具体更改iPad表格的宽度? (在 macOS 中,上面的 width() 有效,我知道,我已经尝试过了)

或者如果 width() 对 iOS 不起作用(我的猜测是用户手指无论如何都无法更改列宽),是否有某种方法可以使某些列变大?例如,这里的电子邮件属性需要更大的空间。

swiftui ipad
1个回答
1
投票

在 iOS/iPadOS 中你必须

  1. 将表格放入可水平滚动的滚动视图中,因为默认情况下只有 macOS 提供表格的水平滚动。

  2. 然后设置桌子框架的宽度;所有列大小的总和。

ScrollView(.horizontal) {
            Table(users) {
                    TableColumn("Employee ID") { user in
                        Text(user.employeeId)
                    }
                    .width(30.0)
                             
                    TableColumn("Name") { user in
                        Text(user.displayName)
                    }
                    .width(30.0)
                            
                    TableColumn("Email") { user in
                        Text(user.email)
                    }
                    .width(150.0)
                            
                    TableColumn("On Board") { user in
                        Text(DateFmt.shortDate.string(from: user.onboardDate))
                    }
                    .width(40.0)
                }
            .frame(width: 250) //<- 30+30+150+40
        }
© www.soinside.com 2019 - 2024. All rights reserved.