连接多个按钮:倒带&一个动作的播放/暂停按钮

时间:2012-06-23 15:20:33

标签: iphone

我的应用中有多个UIButton。想要连接Rewind&播放/暂停一个动作的按钮。完全没有使用界面构建器的应用程序。

当按下

时,此时右后退按钮具有此方法
-(void)rewind:(id)sender{
[timer invalidate];    
audioPlayer.currentTime = 0;
MainViewController *viewController = [[MainViewController alloc] init];
viewController.view.frame = CGRectMake(0, 0, 320, 480);
[self.view addSubview:viewController.view]; 
[self.view addSubview:toolbar];
[viewController release];
[audioPlayer play];
 self.timer = [NSTimer scheduledTimerWithTimeInterval:11.0
 target:self
 selector:@selector(displayviewsAction:)
 userInfo:nil
 repeats:NO];
}
按下时,

和播放/暂停按钮具有此方法

-(void)playpauseAction:(id)sender {
if([audioPlayer isPlaying])
{
    [sender setImage:[UIImage imageNamed:@"Play Icon.png"] forState:UIControlStateSelected];
    [audioPlayer pause];
    [self pauseTimer];
    [self pauseLayer:self.view.layer];
}else{
    [sender setImage:[UIImage imageNamed:@"pause.png"] forState:UIControlStateNormal];
    [audioPlayer play];
    [self resumeTimer];
    [self resumeLayer:self.view.layer];
  if(isFirstTime == YES)
    {
        self.timer = [NSTimer scheduledTimerWithTimeInterval:11.0
                                                      target:self
                                                    selector:@selector(displayviewsAction:)
                                                    userInfo:nil
                                                     repeats:NO];
        isFirstTime  = NO;
    }
   } 
   }

当按下倒带按钮时,它应该执行播放/暂停操作方法,意味着,当按下倒带按钮时,播放/暂停按钮应该切换到暂停按钮,当暂停按钮恢复时,它应该切换到播放按钮。

2 个答案:

答案 0 :(得分:1)

可以使用代码将操作方法​​/选择器连接到UIButton:

 [button1 addTarget:self action:@selector(method:) forControlEvents:UIControlEventTouchUpInside];

您可以使用上面的代码行向UIButton添加相同的操作。

答案 1 :(得分:1)

如果我理解你的问题,你想在点击播放/暂停或倒带按钮时调用相同的方法。

在将此方法作为两个按钮的目标连接后,只需添加此现有代码即可。

为“播放”和“后退”按钮设置唯一标记

-(void)buttonAction:(id)sender {
    UIButton *clickedButton = (UIButton *)[sender];
    if (clickedButton.tag = playButtonTag){
        [self playPauseAction:sender];
    }
    else{
        [self rewindAction:sender];
    }
}

为了简单起见,我使用了if else。如果这样,你可以使用if / if或switch-case。希望这有帮助!