0

アプリに複数の UIButtons があります。ワンアクションで巻き戻し&再生・一時停止ボタンを接続したい。アプリにインターフェースビルダーをまったく使用していません。

現在、巻き戻しボタンには、押されたときにこのメソッドがあります

-(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;
    }
   } 
   }

巻き戻しボタンが押されると、再生/一時停止アクション メソッドを実行する必要があります。つまり、巻き戻しボタンが押されると、再生/一時停止ボタンが一時停止ボタンに切り替わり、一時停止ボタンが再開されると、再生ボタンに切り替わります。

4

2 に答える 2

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 を代わりに使用できます。お役に立てれば!

于 2012-06-23T18:15:58.467 に答える
1

アクション メソッド/セレクターは、コードを使用して UIButton に接続できます。

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

上記のコード行を使用して、同じアクションを UIButton に追加できます。

于 2012-06-23T17:38:18.030 に答える