2013-10-21 45 views
0

我在我的UIView中有一个视频,一个播放和一个停止按钮下的2个按钮。当单击播放按钮时,它变成暂停按钮并反向调用。这里是实现代码:在另一个按钮选择上更改UIButton图像

-(UIView *)subViewControlsView{ 
    UIView *subViewWithControls = [[[UIView alloc]init]autorelease]; 
    subViewWithControls = [[UIView alloc]initWithFrame:CGRectMake((self.view.frame.size.width - xPoint_Pad) - 147, 630, 147, 44)]; 
    [subViewWithControls setBackgroundColor:[UIColor clearColor]]; 

    playButton = [UIButton buttonWithType:UIButtonTypeCustom]; 
    [playButton setFrame:CGRectMake(0, 0, 44, 44)]; 
    [playButton setImage:[UIImage imageNamed:@"play.png"] forState:UIControlStateNormal]; 
    [playButton setImage:[UIImage imageNamed:@"pause.png"] forState:UIControlStateSelected]; 
    [playButton addTarget:self action:@selector(play:) forControlEvents:UIControlEventTouchUpInside]; 
    [subViewWithControls addSubview:playButton]; 


    stopButton = [UIButton buttonWithType:UIButtonTypeCustom]; 
    [stopButton setFrame:CGRectMake(94, 0, 44, 44)]; 
    [stopButton setImage:[UIImage imageNamed:@"stop.png"] forState:UIControlStateNormal]; 
    [stopButton addTarget:self action:@selector(stop:) forControlEvents:UIControlEventTouchUpInside]; 
    [subViewWithControls addSubview:stopButton]; 

    return subViewWithControls; 
} 

,这里是播放键操作:

-(void)play:(UIButton *)sender 
{ 
    if(sender.selected == NO){ 
     sender.selected = YES; 
     [self setButtonCurrentState:YES]; 
     [self.moviePlayerController setInitialPlaybackTime:self.currentTime]; 
     [self playMovieFile:[self localMovieURL]]; 
    } 
    else{ 
     sender.selected = NO; 
     [self setButtonCurrentState:NO]; 
     self.currentTime = self.moviePlayerController.currentPlaybackTime; 
     [self.moviePlayerController pause]; 
    } 
} 

我的要求是,我需要改变播放图像暂停播放按钮,当影片播放即停止,当用户点击停止按钮。我尝试了以下方法:

-(void)stop:(UIButton *)sender{ 
    if (self.buttonCurrentState == YES) 
    { 
     [playButton setImage:[UIImage imageNamed:@"play.png"] forState:UIControlStateNormal]; 
    } 
    self.currentTime = 0.0; 
    [[self moviePlayerController] stop]; 
    [self deletePlayerAndNotificationObservers]; 
} 

它正在验证停止按钮动作中的条件,我已经调试和测试过了,但图像变化没有影响。想知道为什么?

我也尝试改变播放按钮操作中的图像,而不是在-(UIView *)subViewControlsView method.But发生什么是令我惊讶的是,我看不到该按钮,因为该图像未在视图方法中设置。我有试图设置图像作为最初控制状态正常播放,然后改变播放action.Now发生了什么是播放按钮不转到暂停按钮,这是一个双重打击。我试着设置标签,布尔值和很多more.None他们似乎工作!

任何人都可以请给我一个解决方案吗?

感谢所有提前:)

回答

0

就在那时,我已经找到了解决方案,我problem.Thanks到Mr.San和Mr.Preetam对他们的关心和帮助我在摆脱issue.We的需要通过更改按钮图像设置标签,然后禁用为playButton即所选择的状态,

//Set the tag for button 
playButton = [UIButton buttonWithType:UIButtonTypeCustom]; 
playButton.tag = 104; 

然后访问按钮,其状态恢复到正常

-(void)stop:(UIButton *)sender 
{ 
    UIButton * play=(UIButton*)[self.view viewWithTag:104]; 
    [play setSelected:NO]; 
    ........ 
} 

感谢,并希望它可以帮助一些一,快乐编码:)

1
[playButton setImage:[UIImage imageNamed:@"play.png"] forState:UIControlStateNormal]; 

将设置图像实例陈述UIControlStateNormal,但播放电影时,该按钮状态没有UIControlStateSelected(即pause.png将显示)。

所以解决的办法是,你需要设置状态。

-(void)stop:(UIButton *)sender{ 
    if (playButton.isSelected) 
    { 
     [playButton setSelected:NO]; 
    } 
    self.currentTime = 0.0; 
    [[self moviePlayerController] stop]; 
    [self deletePlayerAndNotificationObservers]; 
} 
+0

感谢您的答案,但对不起,它没有工作! –

+0

你是否设法检查playButton是否没有对不对?因为我没有看到任何按钮不会更改图像的问题。 – San

+0

我正在更改播放按钮的图像,即它最初保存播放图像,然后单击时变成暂停图像,反之亦然,该部分工作正常!但是,当我通过停止按钮动作停止视频时,我希望带有暂停图像的播放按钮可以转到播放图像。这是迄今为止我无法实现的目标! –

相关问题