在 DisclosureGroup 中剪辑文本
Clip text in DisclosureGroup
我有一个 DisclosureGroup
,如果它太长,我想剪掉 Text
标签,而不是 …
。我怎样才能做到这一点?
当前代码:
struct ContentView: View {
var body: some View {
List {
DisclosureGroup {
Text("Content")
} label: {
Text("Some long label which is too long for the screen")
.lineLimit(1)
.fixedSize(horizontal: true, vertical: false)
// Would likely clip to bounds here, etc...
}
}
.listStyle(.sidebar)
}
}
此尝试的问题是披露指示器箭头现在不在屏幕上。我希望宽度保持不变,但只是剪裁 Text
而不是截断它。
没有fixedSize
和fixedSize
预期(粗略编辑):
使用 overlay
有效。
代码:
struct ContentView: View {
var body: some View {
List {
DisclosureGroup {
Text("Content")
} label: {
Color.clear
.overlay(alignment: .leading) {
Text("Some long label which is too long for the screen")
.lineLimit(1)
.fixedSize(horizontal: true, vertical: false)
}
.clipped()
}
}
.listStyle(.sidebar)
}
}
结果:
我有一个 DisclosureGroup
,如果它太长,我想剪掉 Text
标签,而不是 …
。我怎样才能做到这一点?
当前代码:
struct ContentView: View {
var body: some View {
List {
DisclosureGroup {
Text("Content")
} label: {
Text("Some long label which is too long for the screen")
.lineLimit(1)
.fixedSize(horizontal: true, vertical: false)
// Would likely clip to bounds here, etc...
}
}
.listStyle(.sidebar)
}
}
此尝试的问题是披露指示器箭头现在不在屏幕上。我希望宽度保持不变,但只是剪裁 Text
而不是截断它。
没有fixedSize |
和fixedSize |
---|---|
预期(粗略编辑):
使用 overlay
有效。
代码:
struct ContentView: View {
var body: some View {
List {
DisclosureGroup {
Text("Content")
} label: {
Color.clear
.overlay(alignment: .leading) {
Text("Some long label which is too long for the screen")
.lineLimit(1)
.fixedSize(horizontal: true, vertical: false)
}
.clipped()
}
}
.listStyle(.sidebar)
}
}
结果: