灵动岛实用工具

一个实用工具集合,提供围绕 iPhone 14 Pro/Max 灵动岛的功能。

我将在不久的将来向此软件包添加更多实用工具。

实用工具

灵动岛

一个类型,提供与灵动岛相关的尺寸、原点、矩形和一些其他信息。例如,你可以这样做

let size = DynamicIsland.size

来获取灵动岛切口的大小。这个尺寸在 iPhone 14 Pro 和 Max 上是相同的。

警告 目前,这提供的是岛屿的静态尺寸,而不是动态尺寸(如果正在运行实时活动,岛屿将会扩展)。

DynamicIsland.progressIndicator

一个简单的对象,提供对灵动岛切口周围进度指示器的访问。要使用它,只需从任何位置访问 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

示例

不确定

手动

要求