定制MPVolumeView拇指图片因为iOS的5.1不垂直居中(Custom MPVolumeVi

2019-07-30 03:14发布

我建设,需要一个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。 我把拇指在绿色的屏幕截图。

Answer 1:

也许更好的解决方案:

用户在底部透明的边框更大的图像。 应围绕10px的视网膜显示器。



Answer 2:

同样的问题我解决了一个项目。 必须设置左部和右部具有α的颜色= 0 - 它表示透明无拇指所有滑块(没有它moovable一部分)。 之后,我们必须为滑块的行自定义视图,没有拇指。 这种观点认为任何颜色的部分可以移动,只要你想,上或下方,左侧或右侧。 它获得使用您的ocassion定义的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的左侧和右侧的滑块默认颜色。



文章来源: Custom MPVolumeView Thumb Image not vertically centered since iOS 5.1