我的应用中有多个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;
}
}
}
当按下倒带按钮时,它应该执行播放/暂停操作方法,意味着,当按下倒带按钮时,播放/暂停按钮应该切换到暂停按钮,当暂停按钮恢复时,它应该切换到播放按钮。
答案 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。希望这有帮助!