我在列表中的屏幕底部有一个按钮。我可以成功地通过不透明隐藏按钮文本,但是背景仍然是白色的,如图所示。我正在尝试删除文本和背景,使其完全不可见。请注意,我确实希望为列表项保留该背景功能。scrollContentBackground(.hidden)不是列表中的选项。
List {
Section {
// ...
}
Section {
// ...
}
Button(action: {
for member in fetchedMembers {
managedObjectContext.delete(member)
}
loadEIPFActive.toggle()
deleteAllActive.toggle()
}, label: {
Text("Delete All")
})
.buttonStyle(PlainButtonStyle())
.frame(maxWidth: .infinity, alignment: .center)
.foregroundColor(.red)
.opacity(deleteAllActive ? 1 : 0)
}
2条答案
按热度按时间htrmnn0y1#
我喜欢LuLuGaGa的建议,使用
if
语句完全删除按钮,但是如果你不喜欢,你可以使用listRowBackground
修饰符。此外,最好将按钮的角色设置为
.destructive
,而不是指定显式的PlainButtonStyle()
和foregroundColor(.red)
。红色可能不是所有区域性中的适当颜色,如果适当(并且如果不重写按钮样式),.destructive
会使按钮变为红色。2w3rbyxf2#
如果我没理解错你的问题,你可以用if: