You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

iOS15与更早版本中List内SwiftUI Button的样式差异及旧样式保留方案

问题解答

你提到的样式差异是iOS 15对SwiftUI组件的预期官方变更,iOS 15针对List容器、内嵌Button的默认样式规则做了全量更新,对齐系统最新的设计规范。

要保留iOS 14及更早版本的原有样式,可通过以下标准API修改:

  • 给Button添加.buttonStyle(.plain)修饰符,取消iOS 15默认的bordered按钮样式,消除默认蓝色文字、圆角、自动边距效果
  • 给按钮内容添加frame(maxWidth: .infinity, alignment: .leading)修饰符,让按钮撑满整行宽度,对齐旧版本的布局规则
  • 若需要彻底取消List的默认分组缩进、圆角效果,可给List添加.listStyle(.plain)修饰符

修改后的完整兼容代码如下:

struct ContentView: View {
    let items = ["Hello, world!"]
    var body: some View {
        List {
            Button(action: {
            }, label: {
                Text("Hello, world!")
                    // 撑满整行宽度
                    .frame(maxWidth: .infinity, alignment: .leading)
            })
            // 还原旧版按钮样式,兼容iOS 13+可写为 .buttonStyle(PlainButtonStyle())
            .buttonStyle(.plain)
            .listRowBackground(Color.gray)
        }
        // 若需要完全移除列表默认圆角、缩进可打开下方注释
        // .listStyle(.plain)
    }
}

内容的提问来源于stack exchange,提问作者Chris Prince

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.01 22:15:03