La image de seguimiento de UISlider desaparece al regresar de una vista específica

Imagen 1

Imagen 1


Imagen 2

introduzca la descripción de la imagen aquí


Imagen 3

introduzca la descripción de la imagen aquí

  1. La primera image es la pantalla de configuration y todo se comporta normalmente con la primera carga de esta pantalla.
  2. La segunda image es la pantalla de política que se presiona desde la pantalla de configuration.
  3. La tercera image al regresar de la pantalla de política a la pantalla de configuration muestra que el control deslizante de la interfaz de usuario ahora no muestra la image de la pista. El comportamiento todavía funciona normalmente, pero la pista ya no está. Es un error muy misterioso para mí. Si voy a otra pantalla de la aplicación y luego presiono la configuration, funciona bien otra vez, pero cuando vengo de la pantalla de la política, la image de la pista desaparece.

Estoy usando el UISlider pnetworkingeterminado. Estoy usando files xib para las diferentes pantallas.

Cuando se hace clic en el button de política …

EditorialPolicyViewController *policyView; if ([UIDevice currentDevice].userInterfaceIdiom == UIUserInterfaceIdiomPad) { policyView = [[EditorialPolicyViewController alloc]initWithNibName:@"EditorialPolicyViewController_iPad" bundle:nil]; } else { policyView = [[EditorialPolicyViewController alloc]initWithNibName:@"EditorialPolicyViewController_iPhone" bundle:nil]; } [self.navigationController pushViewController:policyView animated:YES]; 

ViewDidLoad : configuration del uislider

 NSString *textSize = [[NSUserDefaults standardUserDefaults] valueForKey:@"Text Size"]; float textSizeFloat = [textSize floatValue]; self.textSizeSlider.value = textSizeFloat; [self.textSizeSlider setMaximumValue:16.0]; [self.textSizeSlider setMinimumValue:11.0]; 

Déjeme saber si usted tiene cualquier otra pregunta. No tengo ideas sobre cómo resolver este error.

ACTUALIZACIÓN Encontré que el código de abajo estaba "tanteando" el control deslizante, pero cuando lo eliminé, funcionó bien. ¿De qué manera puedo mantener el color del tema y no hacer que desaparezca?

  [[UISlider appearance] setThumbTintColor:[UIColor colorWithRed:0/255.0f green:75/255.0f blue:152/255.0f alpha:1.0f]]; [[UISlider appearance] setMinimumTrackTintColor:[UIColor colorWithRed:164/255.0f green:75.0f blue:25/255.0f alpha:1.0f]]; [[UISlider appearance] setMaximumTrackTintColor:[UIColor colorWithRed:204/255.0f green:204/255.0f blue:204/255.0f alpha:1.0f]]; 

Este es el conocido error en SetMaximumTrackTintColor . Eliminar esta línea:

 [[UISlider appearance] setMaximumTrackTintColor:[UIColor colorWithRed:204/255.0f green:204/255.0f blue:204/255.0f alpha:1.0f]]; 

y tu aplicación funcionará bien.

Es correcto que se trata de un error conocido. Pero he encontrado una forma de solucionarlo para que puedas mantener tu tematización:

 [[UISlider appearance] setMaximumTrackTintColor:[UIColor colorWithRed:204/255.0f green:204/255.0f blue:204/255.0f alpha:1.0f]]; 

En UIViewController, donde utilizo un control deslizante, establezco el máximo TrackTintColor en el método viewDidLoad: método

 - (void)viewDidLoad { [super viewDidLoad]; _slider.maximumTrackTintColor = [UISlider appearance].maximumTrackTintColor; } 

Esto funciona para mí, ¡así que quería compartir!

puede mover los cambios de apariencia a la function viewDidLoad: function. De esta manera, los cambios de apariencia solo ocurrirán una vez.

 - (void)viewDidLoad { // Appearance changes here } 

esto funciona para mi