自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