【问题标题】:Core Plot Axis Labelling with Time核心绘图轴标记与时间
【发布时间】:2018-09-18 10:52:16
【问题描述】:

我正在尝试用 HH:MM:SS 格式的时间值标记 Core Plot 中的 X 轴。现在我希望它每次都从当前系统时间开始。那么我们如何为 X 轴提供一个开始标记的时间。

【问题讨论】:

    标签: ios core-plot


    【解决方案1】:

    您可以使用labelingOrigin 为大多数轴标签策略设置起始标签位置。

    【讨论】:

    • 在标记时间的情况下,我提供了时间格式化程序的参考日期,我需要将其作为起点;但是,这不起作用。设置轴标签原点需要 NSNumber 作为参数,以防开始时间应该传递什么。
    • 为 DateFormatter 提供参考日期作为当前系统时间;它总是从 05:30:00 开始标记。
    • 标注原点与绘图数据的单位相同。将开始时间转换为数字,就像处理绘图数据一样。
    • 如果我们将绘图范围设置为从 0 到 600,开始时间不会转换为零。
    • 几个核心绘图示例应用程序在轴标签中显示时间,例如,绘图库应用程序中的“范围图”和“日期图”。
    【解决方案2】:

    我最终通过将 CPTTimeFormatter 参考日期参数设置为所需的开始 UTC 时间来实现。

    代码片段:

    NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];

    dateFormatter.dateFormat = @"HH:mm:ss";

    [dateFormatter setTimeZone:[NSTimeZone systemTimeZone]];

    CPTTimeFormatter *timeFormatter = [[CPTTimeFormatter alloc] initWithDateFormatter:dateFormatter];

    NSDate *refDate =[NSDate dateWithTimeIntervalSince1970:desiredStartTime];

    timeFormatter.referenceDate = refDate;

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多