0

私のその他の質問を解決しようとしています。今回はこの方法を試してみました 1つのボタンに複数のメソッドを追加しましたが、ボタンをクリックしても何もしません。それらのメソッドが機能していないように見えます。

//Add Play Button

UIButton *playpauseButton = [UIButton buttonWithType:UIButtonTypeCustom];
[playpauseButton addTarget:self action:@selector(playAction:) forControlEvents:UIControlEventTouchUpInside];
[playpauseButton addTarget:self action:@selector(playpauseAction:) forControlEvents:UIControlEventTouchUpInside];
playpauseButton.frame = CGRectMake(0, 0, 30, 30);
[playpauseButton setImage:[UIImage imageNamed:@"Play Icon.png"] forState:UIControlStateNormal];
[playpauseButton setImage:[UIImage imageNamed:@"pause.png"] forState:UIControlStateSelected];
UIBarButtonItem *play = [[UIBarButtonItem alloc] initWithCustomView:playpauseButton];


- (void)playAction:(id)sender{
[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];
    } else {     
        [sender setImage:[UIImage imageNamed:@"pause.png"] forState:UIControlStateNormal];
        [audioPlayer play];
        [self resumeTimer];  
        self.timer = [NSTimer scheduledTimerWithTimeInterval:11.0
                                        target:self
                                        selector:@selector(displayviewsAction:)
                                        userInfo:nil
                                        repeats:NO];   
        }         
}

 -(void)pauseTimer{
pauseStart = [[NSDate dateWithTimeIntervalSinceNow:0] retain];
previousFireDate = [[timer fireDate] retain];
[timer setFireDate:[NSDate distantFuture]];
}
-(void)resumeTimer{
float pauseTime = -1*[pauseStart timeIntervalSinceNow];
[timer setFireDate:[previousFireDate initWithTimeInterval:pauseTime sinceDate:previousFireDate]];
[pauseStart release];
[previousFireDate release];
}

クリックしても何も起こらない再生ボタンが表示されます。オーディオ ファイルを再生し、NSTimer を開始し、ビューの読み込みを開始し、再生ボタンと一時停止ボタンを切り替えます。何が間違っているのか考えてみてください。

ありがとう。

4

1 に答える 1

0

ユーザーがボタンをタップするとplayAction:[audioPlayer play]. その直後、 は にplaypauseAction:評価さ[audioPlayer isPlaying]れ、 にYESなり[audioPlayer pause]ます。

于 2012-06-15T17:37:02.770 に答える