7

我正在构建一组并发症,并来到了只有一个 textProvider 的 CLKComplicationTemplateUtilitarianLargeFlat。

我想显示一些文本以及相对日期。所以我试着这样做:

let date = CLKRelativeDateTextProvider(date: NSDate(), style: style, units: units)  
let template = CLKComplicationTemplateUtilitarianLargeFlat()  
template.textProvider = CLKSimpleTextProvider(text: "next: \(date)")  

但我得到的只是:

<CLKRelativeDateTextProvider: 0x79860b80>  

您可以从 CLKRelativeDateTextProvider 中提取原始文本或以某种方式将其与 CLKSimpleTextProvider 结合吗?

4

2 回答 2

3

将 CLKRelativeDateTextProvider 对象传递给格式字符串,如 Apple 代码中所述:

@interface CLKTextProvider : NSObject <NSCopying>

// By passing one or more CLKTextProviders in the format substitutions, you can add text around the output of a text provider.
+ (CLKTextProvider *)textProviderWithFormat:(NSString *)format, ... NS_FORMAT_FUNCTION(1, 2);

@property (nonatomic) UIColor *tintColor;

@end

这是一个例子:

id relativeDate = [CLKRelativeDateTextProvider textProviderWithDate:[NSDate dateWithTimeIntervalSinceNow:12 * 60]
                                                              style:CLKRelativeDateStyleNatural
                                                              units:NSCalendarUnitMinute];

template.textProvider = [CLKTextProvider textProviderWithFormat:@"next: %@", relativeDate];

日期提供程序中显示的时间仍会随着时间的推移而更新,而无需刷新任何内容。

于 2015-10-27T19:01:50.227 回答
-1

使用当前版本的 ClockKit,您不能从文本提供程序中提取任何字符串数据,也不能组合 2 个或更多文本提供程序。您可以使用的唯一文本提供程序是:

  • CLKDateTextProvider
  • CLKRelativeDateTextProvider
  • CLKSimpleTextProvider
  • CLKTimeIntervalTextProvider
  • CLKTimeTextProvider

要回答您的问题,您将无法在并发症中显示“下一步”一词和日期。但是,由于 ClockKit 的设计方式和复杂数据的设计方式,您根本不需要显示“Next”。您的并发症应该自动显示数据中相对于当前时间的下一个项目。

于 2015-07-06T02:06:52.993 回答