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 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)
}
}