SwiftUI List滑动操作时右侧按钮圆角设置问题(适配iOS 15)
问题原因
你给Label添加cornerRadius不生效是因为SwiftUI List的滑动操作按钮自带系统级的默认背景样式,你修改的只是按钮内部内容的圆角,并没有作用到按钮的容器视图上。
解决方案
你可以清空按钮的默认样式后,手动自定义背景和圆角,iOS15及以上可以直接用以下写法实现:
List { // 你的列表内容循环 ForEach(listItems) { item in Text(item.content) .swipeActions(edge: .trailing) { Button(role: .destructive) { // 此处写删除逻辑 } label: { Label("Delete", systemImage: "trash.fill") .frame(maxHeight: .infinity) } .buttonStyle(.plain) // 清除系统默认按钮样式 .background(Color.red) // 自定义按钮背景色 .cornerRadius(15) // 你需要的圆角数值 .padding(.vertical, 6) // 可选:调整上下间距避免圆角贴到行边缘 } } } // 不需要修改List的全局圆角,按你原有需求保留List样式即可
说明
- 如果有多个滑动操作按钮,给每个Button单独加上述修饰符就可以分别实现圆角效果,互不影响
- 如果你需要调整按钮的宽度,也可以给Button添加
frame(width: xx)修饰符自定义尺寸
内容的提问来源于stack exchange,提问作者Arturo
相关产品推荐
相关产品推荐

