iOS17小组件有4个新的地方可以放置分别是:Mac桌面、iPad锁屏界面、 iPhone Standby模式、watch的smart stack
Transition to content margins
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 inSafeAreasWidgetView()}.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.blueGroup {Color.cyanText("Hello, world!")}}.padding(-margins)}
}