2012-02-06 14 views
0

을 일시 전환하지 내가있는 UIButton을 가지고 있으며있는 UIButton보기를 표시하지만 버튼

  1. 전환 재생 일시 정지 버튼 사이에 오디오 파일을 재생
  2. 디스플레이 뷰에 그와 관련된 여러 작업을 가지고

displayViewAction을 주석 처리하면 잘 작동합니다 (오디오 파일 재생 및 일시 중지 버튼 전환). 그러나 displayViewAction : 메서드를 사용하면 뷰를 표시하는 오디오 파일을 재생 중이지만 뷰를 표시하기 전에 일시 중지 단추의 상태를 즉시 토글해야하지만 그렇지 않습니다.

참조

코드 울부 짖는 소리 :있는 UIButton에 대한

코드 :

UIButton *playpauseButton = [UIButton buttonWithType:UIButtonTypeCustom]; 
[playpauseButton addTarget:self action:@selector(playpauseAction:) forControlEvents:UIControlEventTouchUpInside]; 
[playpauseButton addTarget:self action:@selector(displayviewsAction:) forControlEvents:UIControlEventTouchUpInside]; 
playpauseButton.frame = CGRectMake(0, 0, 50, 50); 
[playpauseButton setImage:[UIImage imageNamed:@"play.png"] forState:UIControlStateNormal]; 
[playpauseButton setImage:[UIImage imageNamed:@"pause.png"] forState:UIControlStateSelected]; 

UIBarButtonItem *playpause = [[UIBarButtonItem alloc] initWithCustomView:playpauseButton]; 

코드 Playpause 단추 :

-(void)playpauseAction:(id)sender 
{ 
    if ([audioPlayer isPlaying]){ 
     [sender setImage:[UIImage imageNamed:@"play.png"] forState:UIControlStateNormal]; 
     [audioPlayer pause]; 
    } 
    else { 
     [sender setImage:[UIImage imageNamed:@"pause.png"] forState:UIControlStateNormal]; 
     [audioPlayer play]; 
    } 
} 

코드 표시보기 조치 :

- (void)displayviewsAction:(id)sender 
{ 
    self.view = [[[UIView alloc] initWithFrame:[[UIScreen mainScreen] bounds]]autorelease]; 
    [self.view setFrame:CGRectMake(0, 0, self.view.frame.size.width, self.view.frame.size.height)]; 

    PageOneViewController *viewController = [[[PageOneViewController alloc] init]autorelease]; 
    [self.view addSubview:viewController.view]; 
} 

수 누구든지 ase 내가 어떻게 이런 방식으로 작동하게 할 수 있겠습니까?

답변

2

UIButton에 하나의 작업 만 연결하십시오. 이 작업이 호출되면 응용 프로그램의 상태에 따라 다양한 작업을 수행하십시오.

1

많은 작업을 UIButton에 추가 할 수 없습니다.

왜 재생/일시 중지를 전환하고보기를 표시하는 기능을 추가하지 않습니까?

[playpauseButton addTarget:self action:@selector(playpauseActionAndDisplayView:) forControlEvents:UIControlEventTouchUpInside]; 

-(void)playpauseActionAndDisplayView:(id)sender 
{ 
    [self playpauseAction:sender]; 
    [self displayviewsAction:sender]; 
} 
+0

인스턴스 메서드 playpauseAction이 발견되지 않고 displayviewsAction이 발견되지 않는다는 경고가 나타납니다. – user1120133

+0

은 여전히 ​​일시 중지 단추를 즉시 전환하지 않습니다. – user1120133

+0

물론 playpauseAction을 헤더 파일에 선언해야합니다. – Martin

0

-(void)playpauseAction:(id)sender 
{ 

    if 

    ([audioPlayer isPlaying]){ 

[sender setImage:[UIImage imageNamed:@"play.png"] forState:UIControlStateSelected]; 

     [audioPlayer pause]; 

    } else { 

[sender setImage:[UIImage imageNamed:@"pause.png"] forState:UIControlStateNormal]; 

     [audioPlayer play]; 

     [self displayviewsAction:sender]; 

    } 


} 

처럼 playpauseAction 방법에 UIControlState을 변경하고 일했다.