【问题标题】:Is there any way to make like iPhone progressbar in Apple Watch?有没有办法在 Apple Watch 中制作类似 iPhone 的进度条?
【发布时间】:2015-04-07 09:05:42
【问题描述】:

大家好,我是 Apple Watch 开发的新手,有什么方法可以在 Apple Watch 中显示进度条吗?我有一个应用程序,其中有随用户位置更新的进度条。我在 iPhone 中实现了同样的东西,但现在我想在 Apple Watch 中实现同样的东西。有没有办法做到这一点?

【问题讨论】:

    标签: ios watchkit apple-watch


    【解决方案1】:

    watchOS 2+ 中纯色进度条最简单的方法需要 1 张图片:

    1. 在需要进度条的位置添加组。该组的条形大小应为 100%。
    2. 将 WKInterfaceImage 添加到具有纯色图像的组中。
    3. 在您的代码中,只要当前值发生变化,就调用progressBarImage.setRelativeWidth(CGFloat(currentValue / maxValue), withAdjustment: 0)

    如果你想要一个垂直的进度条,有一个功能:progressBarImage.setRelativeHeight(CGFloat(currentValue / maxValue), withAdjustment: 0)

    您还可以在手机上动态创建图像。我把这个作为练习留给读者。

    【讨论】:

    • 这个解决方案比公认的解决方法要容易得多,并且仍然适用于 Swift 5 / watchOS 5。不知道为什么这不是公认的答案。
    【解决方案2】:

    目前WatchKit 中没有进度条。

    解决方法

    一个相当简单的解决方法是设计一个WKInterfaceImage,它看起来像一个进度条以及用于填充进度条的渐进图像。然后更新当前显示的图像,以匹配您的用户位置进展的百分比。

    【讨论】:

    • 这将是一组非常小的压缩图像和其他所有图像。相信我,100 张图片不会占用那么多空间。任何包含动画的应用程序在其捆绑包中都有 100 个(如果不是 1000 个)图像来创建这些动画。此外,如果您真的很担心,您可以创建 20 张图像,并且仅以 5% 的增量显示更新。
    【解决方案3】:

    我找到了一个更简单的方法。

    您可以使用两组来完成。过程类似于 Fizker 的回答。

    1. 在需要进度条的位置添加组。该组应该有 栏的大小为 100%,高度固定。
    2. 使用相同的固定高度将另一个组添加到前一组。
    3. 为第二组创建一个出口。 (例如:progressGroup)
    4. 在您的代码中调用progressGroup.setRelativeWidth(CGFloat(currentValue / maxValue), withAdjustment: 0)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-09-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-10-06
      相关资源
      最近更新 更多