CLKRelativeDateTextProvider

CLKRelativeDateTextProvider

我正在建立一组Complication,并来到了只有一个textProvider的CLKComplicationTemplateUtilitarianLargeFlat。

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

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

但是我得到的是:
<CLKRelativeDateTextProvider: 0x79860b80>

您可以从CLKRelativeDateTextProvider中提取原始文本,还是以某种方式将其与CLKSimpleTextProvider合并?

最佳答案

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

@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];

日期提供程序中显示的时间将随着时间的流逝而更新,而无需刷新任何内容。

10-08 05:38