J'ai ajouté un contrôle UISlider à une application iPhone View et j'ai câblé un champ de texte qui récupère les valeurs du curseur. Pour s'adapter aux couleurs de l'interface utilisateur dans l'application, j'ai besoin de changer la couleur du curseur. Avec un peu de googling, j'ai pu trouver 2 échantillons qui le font (http://blog.hill-it.be/post/2009/03/23/Pimp-My-UISlider et http://developer.apple.com/iphone/library/samplecode/UICatalog/index.html) mais je suis coincé parce que je ne suis pas sûr d'où je devrais appeler le code.Comment personnaliser le contrôle UISlider de l'iPhone à l'exécution - où dois-je placer le code de mise à jour de la couleur?
J'ai une méthode qui devrait renvoyer un objet UISlider personnalisé, mais comment remplacer celui que j'ai créé via le constructeur d'interface qui réside dans mes sliderViewController.m et sliderViewController.h?
- (UISlider *)createCustomSlider
{
CGRect frame = CGRectMake(174, 12.0, 120.0, 7.0);
UISlider customSlider = [[UISlider alloc] initWithFrame:frame];
[customSlider addTarget:self action:@selector(sliderAction:) forControlEvents:UIControlEventValueChanged];
// in case the parent view draws with a custom color or gradient, use a transparent color
customSlider.backgroundColor = [UIColor clearColor];
UIImage *stetchLeftTrack = [[UIImage imageNamed:@"orangeslide.png"]
stretchableImageWithLeftCapWidth:10.0 topCapHeight:0.0];
UIImage *stetchRightTrack = [[UIImage imageNamed:@"yellowslide.png"]
stretchableImageWithLeftCapWidth:10.0 topCapHeight:0.0];
[customSlider setThumbImage: [UIImage imageNamed:@"slider_ball.png"] forState:UIControlStateNormal];
[customSlider setMinimumTrackImage:stetchLeftTrack forState:UIControlStateNormal];
[customSlider setMaximumTrackImage:stetchRightTrack forState:UIControlStateNormal];
customSlider.minimumValue = 0.0;
customSlider.maximumValue = 100.0;
customSlider.continuous = YES;
customSlider.value = 50.0;
return customSlider;
}
Avec .NET je aurait normalement un code généré par l'éditeur WinForms que je serais alors en mesure de passer outre en créant un nouvel objet et attribuer à la référence existante.