Ios 在MPMoviePlayerViewController中自定义两个UI滑块?

Ios 在MPMoviePlayerViewController中自定义两个UI滑块?,ios,objective-c,uislider,uiappearance,Ios,Objective C,Uislider,Uiappearance,我目前正在尝试自定义MPMoviePlayerViewController中的一些东西,但其中一个滑块有问题 如下所示,它具有2个滑块、一个音量滑块和一个小持续时间滑块 通过使用以下命令:UIImage*thumbImage=[UIImage-imagename:@“mptumbselected.png”]; [[UISlider外观]设置thumbImage:thumbImage for状态:UIControlStateNormal] 我可以自定义每个滑块,包括音量滑块,但由于某些原因,导航栏

我目前正在尝试自定义MPMoviePlayerViewController中的一些东西,但其中一个滑块有问题

如下所示,它具有2个滑块、一个音量滑块和一个小持续时间滑块

通过使用以下命令:
UIImage*thumbImage=[UIImage-imagename:@“mptumbselected.png”];
[[UISlider外观]设置thumbImage:thumbImage for状态:UIControlStateNormal]

我可以自定义每个滑块,包括音量滑块,但由于某些原因,导航栏中较小的滑块拇指没有更新。有人有什么建议吗?任何帮助都将不胜感激!谢谢


您可以更改
MPMoviePlayerController
的默认控件。您可以做的一件事是隐藏
mpmovieplayervewcontroller
的默认控件,并添加您自己的自定义音量滑块

moviePlayer.controlStyle=MPMovieControlStyleNone;
您可以像这样添加音量按钮:

UIButton *soundBtn=[ UIButton buttonWithType:UIButtonTypeCustom];
    soundBtn.frame=CGRectMake(400,10,35,35);
    soundBtn.showsTouchWhenHighlighted=YES;
    [soundBtn setBackgroundImage:[UIImage imageNamed:@"valume.png"] forState:UIControlStateNormal];
    [soundBtn addTarget:self action:@selector(valumeAction) forControlEvents:UIControlEventTouchUpInside];
    [controllsView addSubview:soundBtn];
对于卷,可以使用MPVolumeView类

-(void)volumeController{
    volumeView = [[UIView alloc]initWithFrame:CGRectMake(40,410,100,20)];
    volumeView.backgroundColor = [UIColor clearColor];

    [self.view addSubview:volumeView];

    //MP Valume Slider for controlling thew volume
    volumeslider = [[[MPVolumeView alloc] initWithFrame:volumeView.bounds] autorelease];
    NSArray *tempArray = volumeslider.subviews;
    for (id current in tempArray){
        if ([current isKindOfClass:[UISlider class]]){
            UISlider *tempSlider = (UISlider *) current;
            UIImage *stetchLeftTrack = [[UIImage imageNamed:@"bar_2.png"]
                                        stretchableImageWithLeftCapWidth:5.0 topCapHeight:0.0];
            UIImage *stetchRightTrack = [[UIImage imageNamed:@"bar.png"]
                                         stretchableImageWithLeftCapWidth:5.0 topCapHeight:0.0];
            [tempSlider setMinimumTrackImage:stetchLeftTrack forState:UIControlStateNormal];
            [tempSlider setMaximumTrackImage:stetchRightTrack forState:UIControlStateNormal];
        } 
    } 
    [volumeView addSubview:volumeslider];
    //[controllsView addSubview:volumeView];
    [volumeView sizeToFit];
    volumeView.hidden = YES;
    isValumeBarHidden = YES;
    //Volume Slider created and added to the volumeview
}

您可以更改
MPMoviePlayerController
的默认控件。您可以做的一件事是隐藏
mpmovieplayervewcontroller
的默认控件,并添加您自己的自定义音量滑块

moviePlayer.controlStyle=MPMovieControlStyleNone;
您可以像这样添加音量按钮:

UIButton *soundBtn=[ UIButton buttonWithType:UIButtonTypeCustom];
    soundBtn.frame=CGRectMake(400,10,35,35);
    soundBtn.showsTouchWhenHighlighted=YES;
    [soundBtn setBackgroundImage:[UIImage imageNamed:@"valume.png"] forState:UIControlStateNormal];
    [soundBtn addTarget:self action:@selector(valumeAction) forControlEvents:UIControlEventTouchUpInside];
    [controllsView addSubview:soundBtn];
对于卷,可以使用MPVolumeView类

-(void)volumeController{
    volumeView = [[UIView alloc]initWithFrame:CGRectMake(40,410,100,20)];
    volumeView.backgroundColor = [UIColor clearColor];

    [self.view addSubview:volumeView];

    //MP Valume Slider for controlling thew volume
    volumeslider = [[[MPVolumeView alloc] initWithFrame:volumeView.bounds] autorelease];
    NSArray *tempArray = volumeslider.subviews;
    for (id current in tempArray){
        if ([current isKindOfClass:[UISlider class]]){
            UISlider *tempSlider = (UISlider *) current;
            UIImage *stetchLeftTrack = [[UIImage imageNamed:@"bar_2.png"]
                                        stretchableImageWithLeftCapWidth:5.0 topCapHeight:0.0];
            UIImage *stetchRightTrack = [[UIImage imageNamed:@"bar.png"]
                                         stretchableImageWithLeftCapWidth:5.0 topCapHeight:0.0];
            [tempSlider setMinimumTrackImage:stetchLeftTrack forState:UIControlStateNormal];
            [tempSlider setMaximumTrackImage:stetchRightTrack forState:UIControlStateNormal];
        } 
    } 
    [volumeView addSubview:volumeslider];
    //[controllsView addSubview:volumeView];
    [volumeView sizeToFit];
    volumeView.hidden = YES;
    isValumeBarHidden = YES;
    //Volume Slider created and added to the volumeview
}

非常感谢。我接受了你的答案,因为这是下一个最好的方法,但我正在寻找一种方法,只编辑现有的控制器,而不必构建自己的控件。谢谢。我接受了你的答案,因为这是下一个最好的方法,但我正在寻找一种方法,只编辑现有的控制器,而不必构建自己的控件。