自iOS 5.1以来,自定义MPVolumeView Thumb图像不是垂直居中的

我正在构建一个需要MPVolumeView来控制音量的应用程序。 它在iOS 5.1之前完美运行,但自5.1更新以来,拇指图像不再垂直居中。 我尝试了一些改变想象尺寸,调整视图大小(和滑块)的东西,但似乎没有任何效果,拇指不再垂直居中。 我得到一个中心拇指的唯一方法是,如果我使用默认的iOS。

我尝试将UISlider添加到另一个视图,其中包含精确的最小,最大和拇指图像,并且该图像中心很好。

以下是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只是一个153×33的UIView。 我在屏幕截图中将拇指放在绿色中。 在此处输入图像描述

也许更好的解决方案:

使用底部带有透明边框的更大图像。 Retina显示器应该在10px左右。

我在一个项目中解决了同样的问题。 必须设置左侧部分和右侧部分的颜色,alpha = 0 – 这意味着没有拇指的透明所有滑块(没有可移动的部分)。 在我们必须为滑块线创建自定义视图之后,没有拇指。 在此视图中,任何彩色部分都可以根据需要移动,上方或下方,左侧或右侧。 它使用定义的y为你的ocassion获得:

 UIView *v = [[UIView alloc] initWithFrame:CGRectMake(x,y,width, height)]; 

并将滑块添加到此行作为子视图。 结果视图将是滑块。 例如:

 UISlider *ourSlider = ...; //initialise UISlider ourSlider.minimumTrackTintColor = [UIColor colorWithRed:0 green:122.0f/255.0f blue:1 alpha:0]; ourSlider.minimumTrackTintColor = [UIColor colorWithRed:0 green:122.0f/255.0f blue:1 alpha:0]; UIView *lineOfSliderWithoutThumb = ... ; // creation it [lineOfSliderWithoutThumb addSubview:ourSlider]; 

//在此lineOfSliderWithoutThumb之后是我们的自定义uislider。 注意:颜色用作UISlider左侧和右侧的默认滑块颜色。