一个实用工具集合,提供围绕 iPhone 14 Pro/Max 灵动岛的功能。
我将在不久的将来向此软件包添加更多实用工具。
一个类型,提供与灵动岛相关的尺寸、原点、矩形和一些其他信息。例如,你可以这样做
let size = DynamicIsland.size
来获取灵动岛切口的大小。这个尺寸在 iPhone 14 Pro 和 Max 上是相同的。
警告 目前,这提供的是岛屿的静态尺寸,而不是动态尺寸(如果正在运行实时活动,岛屿将会扩展)。
一个简单的对象,提供对灵动岛切口周围进度指示器的访问。要使用它,只需从任何位置访问 DynamicIsland.progressIndicator
即可控制指示器。
DynamicIsland.progressIndicator.progressColor = .green
DynamicIsland.progressIndicator.isProgressIndeterminate = false
// Manual progress
doFixedWork { currentProgress in
if currentProgress == 100 {
DynamicIsland.progressIndicator.hideProgressIndicator()
} else {
DynamicIsland.progressIndicator.progress = currentProgress
}
}
/// Indeterminate progress
DynamicIsland.progressIndicator.showIndeterminateProgressAnimation()
doSomeWorkThatMayFinishLater { result in
...
DynamicIsland.progressIndicator.hideProgressIndicator()
}
为了访问此属性,你需要首先检查 DynamicIsland.isAvailable
(这是在运行时强制执行的),这也促使你提供后备逻辑
if DynamicIsland.isAvailable {
// Show a cool progress indicator around the Dynamic Island
DynamicIsland.progressIndicator.showIndeterminateProgressAnimation()
} else {
// Fallback to a default indicator
showIndeterminateProgressBar()
}
注意 默认情况下,进度指示器被添加到主窗口(或第一个场景的第一个窗口)。如果你想更改它,请将
DynamicIsland.progressIndicator.window
设置为你选择的UIWindow
。
示例