SwiftUI中Form内Button点击无轻触动画问题求助
在iOS 16及后续版本中,SwiftUI Form里的默认Button样式不会自动触发设置应用那种整行背景变色的点击动画,即便按钮逻辑能正常执行。你可以通过以下修改实现同款交互效果:
修改原代码中Button部分的内容:
Button("Save Data") { UserDefaults.standard.set(text, forKey: "TEXT_Key") } .buttonStyle(.borderless) // 适配列表行的交互样式 .frame(maxWidth: .infinity, alignment: .leading) // 让按钮占满整行宽度
原理说明
.buttonStyle(.borderless):启用无边框按钮样式,让Button适配Form列表行的交互规则;.frame(maxWidth: .infinity):让按钮占据整个列表行的宽度,确保点击时整行触发背景变色动画,和iOS设置应用的交互逻辑一致。
你也可以用PlainButtonStyle()替代.borderless,实现相同效果:
Button("Save Data") { UserDefaults.standard.set(text, forKey: "TEXT_Key") } .buttonStyle(PlainButtonStyle()) .frame(maxWidth: .infinity, alignment: .leading)
内容的提问来源于stack exchange,提问作者NoobOfCpp
相关产品推荐
相关产品推荐

