iOS17 widget Content margin


iOS17小组件有4个新的地方可以放置分别是:Mac桌面、iPad锁屏界面、 iPhone Standby模式、watch的smart stack

Transition to content margins
iOS17 widget Content margin_第1张图片

iOS17中苹果为widget新增了Content margin, 使widget的内容能够距离边缘有一定的间隙,确保内容显示完整。这个margin会根据widget所在位置的不同自动由系统调整。

想要去掉Content margin的话可以通过一下几个方法
方法一:设置.contentMarginsDisabled() 即可

struct _7Widget: Widget {
    let kind: String = "_7Widget"

    var body: some WidgetConfiguration {
        StaticConfiguration(kind: kind, provider: Provider()) { entry in
            SafeAreasWidgetView()
        }
        .contentMarginsDisabled()
        .configurationDisplayName("My Widget")
        .description("This is an example widget.")
    }
}

方法二、设置小组件的padding 为负的Content margin

struct SafeAreasWidgetView: View {
	// 获取contentMargin
    @Environment(\.widgetContentMargins) var margins 
    var body: some View {
        ZStack {
            Color.blue
            Group {
                Color.cyan
                Text("Hello, world!")
            }
        }
        .padding(-margins)
    }
}

你可能感兴趣的:(ios,widget,iOS17,iOS17小组件,小组件新增边距)