有什么方法可以像Apple Watch一样制作iPhone进度条吗?

时间:2015-04-07 09:05:42

标签: ios watchkit apple-watch

大家好,我是Apple Watch开发的新手,有没有办法在Apple Watch中显示进度条?我有一个应用程序,其中有进度条,用用户位置更新。我在iPhone中实现了相同的功能,但现在我想在Apple Watch中实现相同的功能。有没有办法做到这一点?

3 个答案:

答案 0 :(得分:4)

目前WatchKit中没有进度条。

解决方法

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

答案 1 :(得分:2)

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

  1. 添加您想要进度条的组。该组的大小应该是100%。
  2. 将WKInterfaceImage添加到具有纯色图像的组中。
  3. 在您的代码中,只要当前值发生变化,请致电DECLARE @YourTable Table([DateCol] DATETIME, [Actual] NUMERIC(10,2), [Planned] NUMERIC(10,2)) INSERT INTO @YourTable ([DateCol], [Actual], [Planned]) VALUES ('01-05-2016 07:00:01',3.1,2.7), ('01-05-2016 19:00:01',2.9,2.7), ('03-05-2016 07:00:01',3.2,2.7), ('03-05-2016 07:00:01',3.4,2.7), ('05-06-2016 07:00:01',3.2,2.7), ('07-06-2016 07:00:01',2.6,2.7), ('07-06-2016 07:00:01',3.2,2.7) DECLARE @begin DATETIME, @End DATETIME SELECT @begin = MIN([DateCol]), @End = MAX([DateCol]) FROM @YourTable -- For Monthly avg. SET @begin = DATEADD(MONTH, DATEDIFF(MONTH,0,@begin),0) SET @End = DATEADD(DAY,-1,DATEADD(MONTH, DATEDIFF(MONTH,0,@End),0)) --SELECT @begin,@End ;WITH Months AS ( SELECT @begin DateRange UNION ALL SELECT DATEADD(MONTH,1,DateRange) FROM Months WHERE DateRange < @End ) SELECT m.DateRange, DATEADD(DAY,-1,DATEADD(MONTH, DATEDIFF(MONTH,0,m.DateRange)+1,0)) [DateRangeEnd],AVG([Actual]) [AvgActual],AVG([Planned]) [AvgPlanned] FROM @YourTable y INNER JOIN Months m ON y.DateCol BETWEEN m.DateRange AND DATEADD(DAY,-1,DATEADD(MONTH, DATEDIFF(MONTH,0,m.DateRange)+1,0)) GROUP BY m.DateRange,DATEADD(DAY,-1,DATEADD(MONTH, DATEDIFF(MONTH,0,m.DateRange)+1,0))
  4. 如果您想要一个垂直进度条,可以使用progressBarImage.setRelativeWidth(CGFloat(currentValue / maxValue), withAdjustment: 0)

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

答案 2 :(得分:0)

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

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

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