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

我正在构建一个需要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只是一个153x33的UIView。 我在屏幕截图中将拇指置于绿色。 在这里输入图像描述


也许更好的解决方案:

用户在底部有一个透明边框的更大图像。 对于Retina显示器应该在10px左右。


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

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左侧和右侧的默认滑块颜色。

链接地址: http://www.djcxy.com/p/61019.html

上一篇: Custom MPVolumeView Thumb Image not vertically centered since iOS 5.1

下一篇: ConnectionLoss for /hbase + Connection reset by peer?