J'ai essayé plusieurs méthodes pour implémenter un UISlider
régulier et contrôler le volume du périphérique, mais toutes les fonctions Native-C entraînent de nombreux bogues introuvables.Comment personnaliser MPVolumeView?
J'ai essayé le MPVolumeView
cela fonctionne comme le charme, il contrôle même le volume de l'appareil même après la fermeture de l'application, tout comme l'application iPod.
Ma question est, est-il de toute façon de personnaliser le MPVolumeView
avec des couleurs et des images spécifiques, tout comme UISlider
?
REMARQUE: je souhaite une méthode légale sans utiliser d'API non documentées privées.
MISE À JOUR
Comme par réponse @Alexsander Akers, car les vues sont cachées dans les sous MPVolumeView
je dû faire défiler subviews, obtenir le UISlider
et le personnaliser, est le code ici.
IBOutlet UISlider *volumeSlider; //defined in <class.h> and connected to a UISlider in Interface Builder
-(void) viewDidLoad {
....
[self setCustomSlider];
....
}
-(void) setCustomSlider{
MPVolumeView *volumeView = [[[MPVolumeView alloc] initWithFrame:[volumeSlider frame]] autorelease];
NSArray *tempArray = volumeView.subviews;
for (id current in tempArray){
if ([current isKindOfClass:[UISlider class]]){
UISlider *tempSlider = (UISlider *) current;
UIImage *img = [UIImage imageNamed:@"trackImage.png"];
img = [img stretchableImageWithLeftCapWidth:5.0 topCapHeight:0];
[tempSlider setMinimumTrackImage:img forState:UIControlStateNormal];
[tempSlider setThumbImage:[UIImage imageNamed:@"thumbImage.png"] forState:UIControlStateNormal];
}
}
[volumeSlider removeFromSuperview];
[self.view addSubview:volumeView];
}
bien fait. Beau travail de mise à jour de votre question. –
Juste par curiosité, était-ce accepté dans l'App Store? – sooper
@sooper réponse très tardive, désolé. Malheureusement, je n'ai pas continué cette application et je ne l'ai jamais soumise à App Store.Mais d'expérience personnelle, j'ai vu de nombreux tutoriels de modification des composants originaux et ils ont été acceptés. – medopal