我正在建立一组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];
日期提供程序中显示的时间将随着时间的流逝而更新,而无需刷新任何内容。