MPVolumeView仅适用于iPod

时间:2014-05-20 13:34:11

标签: ios iphone ipad

我在我的项目

中添加了这样的MPVolumeview

这是我用于iPad的代码。

- (void)addVolumeControl {

volumeView = [[MPVolumeView alloc] initWithFrame: CGRectMake(780, 33, 150, 40)];


NSArray *tempArray = volumeView.subviews;

for (id current in tempArray)
{
    if ([current isKindOfClass:[UISlider class]])
    {
        UISlider *tempSlider = (UISlider *) current;
        [tempSlider setMaximumTrackTintColor:[UIColor clearColor]];

        CGRect rRect = tempSlider.frame;
        rRect.origin.x = rRect.origin.x + 20;
        tempSlider.frame = rRect;

        UIImage *pMaxTrackImage;
        UIImage *pMinTrackImage;
        UIImage *pThumbImage;

        pMaxTrackImage = [[UIImage imageNamed:@"pgbar_sound_fill_ipad"]resizableImageWithCapInsets:UIEdgeInsetsMake(0, 6, 0, 6)];
        pMinTrackImage = [[UIImage imageNamed:@"pgbar_sound_bg_ipad"]resizableImageWithCapInsets:UIEdgeInsetsMake(0, 6, 0, 6)];
        pThumbImage    = [UIImage imageNamed:@"pgbar_sound_thumb_ipad"];

        [tempSlider setMaximumTrackImage:pMaxTrackImage forState:UIControlStateNormal];
        [tempSlider setMinimumTrackImage:pMinTrackImage forState:UIControlStateNormal];
        [tempSlider setThumbImage:pThumbImage forState:UIControlStateNormal];
    }
}

volumeView.autoresizingMask = UIViewAutoresizingFlexibleLeftMargin | UIViewAutoresizingFlexibleTopMargin;

[self._bottomBar addSubview:volumeView];

}

在iPod中运行应用程序时,音量工作正常,但在iPhone和iPad中无效。

我测试的设备是iPod5和iPhone5C。 我测试的操作系统是iOS6和iOS7。

我已经尝试了几乎所有可用的帮助,没有一个对我有效。 请提供一些建议/指导。

谢谢,

Nikhil.T

2 个答案:

答案 0 :(得分:1)

您需要设置这些值setMinimumTrackImagesetMaximumTrackImagesetThumbImage

for (UIView *sv in [volumeSlider subviews])
{
    if ([sv isKindOfClass:[UISlider class]])
    {
        UISlider *slider = (UISlider*) sv;
        [slider setMinimumTrackImage:yourImage forState:UIControlStateNormal];
        [slider setMaximumTrackImage:yourImage forState:UIControlStateNormal];
        [slider setThumbImage:yourImage forState:UIControlStateNormal];
    }
}

答案 1 :(得分:0)

我不知道为什么它不适用于iPad和iPhone。但我认为设置左轨道和右轨道图像的正确方法是使用以下方法。

现在我在我的代码中使用以下方法,希望这有助于某人

  

MPVolumeView * pVolumeView = [[MPVolumeView alloc] initWithFrame:myFrame];

     

[volumeView setMaximumVolumeSliderImage:myImage forState:UIControlStateNormal];   [volumeView setMinimumVolumeSliderImage:myImage   forState:UIControlStateNormal];
  [volumeView   setVolumeThumbImage:thumbImage forState:UIControlStateNormal];