Sto costruendo un'applicazione che necessita di un MPVolumeView per controllare il volume. Ha funzionato perfettamente prima di iOS 5.1 ma dal momento che l'aggiornamento 5.1 l'immagine del pollice non è più centrata verticalmente. Ho provato alcune cose come cambiare le dimensioni delle immagini, ridimensionare le mie viste (e il cursore) ma niente sembra funzionare, il pollice non è più centrato verticalmente. L'unico modo in cui ottengo un pollice centrato è se utilizzo il predefinito iOS.Immagine personalizzata MPVolumeView Thumb non centrata verticalmente da iOS 5.1
Ho provato ad aggiungere un UISlider a un'altra vista con l'immagine esatta min, max e pollice e quella è centrata correttamente.
Ecco il codice per il MPVolumeView:
MPVolumeView *volumeView;
volumeView = [[[MPVolumeView alloc] initWithFrame:volumeViewHolder.bounds] autorelease];
[volumeViewHolder addSubview:volumeView];
UIView *volumeViewSlider;
for (UIView *view in [volumeView subviews])
{
if ([[[view class] description] isEqualToString:@"MPVolumeSlider"])
{
volumeViewSlider = view;
}
}
[(UISlider *)volumeViewSlider setThumbImage:sliderHandleIcon forState:UIControlStateNormal];
[(UISlider *)volumeViewSlider setMinimumTrackImage:leftTrackImage forState:UIControlStateNormal];
[(UISlider *)volumeViewSlider setMaximumTrackImage:rightTrackImage forState:UIControlStateNormal];
volumeViewHolder è solo un UIView questo è 153x33. Ho messo il pollice in verde nello screenshot.
Ho avuto lo stesso problema, [Daniel Amitay] (http://stackoverflow.com/users/314042/daniel-amitay) mi ha indicato la soluzione: http://tibr.me/2012/07/14/ personalizzazione-mpvolumeview-appearance/ – murze
Questa non è una grande soluzione in quanto sostituisce l'implementazione MPVolumeSlider per tutti MPVolumeSlider. Ciò provoca un offset nel dispositivo di scorrimento MPMoviePlayerViewController che usiamo per riprodurre altri media. –
@murze: Questo è un trucco se mai ne ho visto uno! È accettato da Apple? – Nailer