No puedo establecer el color de texto blanco para body1TextProvider y body2TextProvider . Solo color gris disponible.
Mi código:
let modularLarge = CLKComplicationTemplateModularLargeStandardBody() modularLarge.headerTextProvider = CLKSimpleTextProvider(text: dateText.capitalized) modularLarge.headerTextProvider.tintColor = self.tintColor modularLarge.body1TextProvider = CLKSimpleTextProvider(text: timeText) modularLarge.body2TextProvider = CLKSimpleTextProvider(text: "00:00") modularLarge.body1TextProvider.tintColor = self.whiteColor modularLarge.body2TextProvider?.tintColor = self.whiteColor handler(CLKComplicationTimelineEntry(date: Date(),complicationTemplate: modularLarge))Me parece que hay un error o algún matiz no documentado para aplicar tintColor en CLKSimpleTextProvider .
Según la documentación sobre CLKSimpleTextProvider de tintColor :
tinteColor
El color de matiz que se utilizará para el texto.
Discusión
En las esferas de reloj que admiten colores personalizados, este color se aplica al texto en su proveedor de texto.
Referencia: https://developer.apple.com/documentation/clockkit/clktextprovider/1627929-tintcolor
Ahora... después de elegir la esfera de reloj Modular multicolor, podemos observar que el headerTextProvider.tintColor funciona como se documenta y aplica el UIColor especificado.
pero...
body1TextProvider.tintColor y body2TextProvider?.tintColor no funcionan según lo documentado, ya que no aplica el UIColor dado.
Mostrándonos que el comportamiento documentado no se aplica de manera uniforme en todos los textProvider s.
Me di cuenta de que si configura el CLKComplicationTemplate de tintColor en algo, entonces body1TextProvider y body2TextProvider se vuelven blancos, incluso si está tratando de configurar otro color como azul/amarillo/etc.
Afortunadamente, lo quiere blanco, así que simplemente modularLarge.tintColor = .red (o un UIColor que coincida con su tema) obtendrá sus textos de cuerpo blanco.
No es necesario hacer lo siguiente (eliminar/mantener, no importa):
modularLarge.body1TextProvider.tintColor = self.whiteColor modularLarge.body2TextProvider?.tintColor = self.whiteColor En su lugar, haz esto antes de llamar handler :
modularLarge.tintColor = UIColor.red let modularLarge = CLKComplicationTemplateModularLargeStandardBody() modularLarge.tintColor = .red //do this modularLarge.headerTextProvider = CLKSimpleTextProvider(text: dateText.capitalized) modularLarge.headerTextProvider.tintColor = self.tintColor modularLarge.body1TextProvider = CLKSimpleTextProvider(text: timeText) modularLarge.body2TextProvider = CLKSimpleTextProvider(text: "00:00") handler(CLKComplicationTimelineEntry(date: Date(),complicationTemplate: modularLarge))