2011-09-30 4 views
2

animateWithDuration 메서드를 사용하여 노래가 재생 될 때 스크롤되는 노래에 가사가있는 textView에 애니메이션을 적용합니다. 잘 작동하지만 노래의 일시 중지 단추가 포함되어 있으며 일시 중지되면 애니메이션이 계속 스크롤됩니다. 이 작업을 일시 중지 할 수있는 방법이 있습니까? Apple에서 클래스 참조를 살펴본 결과 몇 가지 지연 방법이 있음을 알았지 만 애니메이션 시작 전에 사용하기위한 것입니다. 사용자가 노래를 일시 중지/일시 중지 해제 할 때 애니메이션을 일시 중지/다시 시작하는 방법이 있다면 궁금합니다. 미리 감사드립니다.animateWithDuration을 시작한 후 일시 중지 할 수 있습니까?

답변

0

당신은 시간과 현재/표시 위치에 텍스트 뷰를 이동 새로운 애니메이션을 시작할 수 있습니다 (일시 정지 버튼을 누를 때)은 0.0f, 그것은 ;-) 당신은 할 수

+0

나는 htis에 대해 생각해 보았지만, 움직이는 textView의 CGPoint를 결정하는 방법이 있다면 작동 할 것이 었습니다. 그래서 일시 정지 된 시점에서 애니메이션을 멈출 수 있었고 재생이 다시 시작되면 그 시점부터 시작 할 수있었습니다 . 지금까지 나는 하나를 찾을 수 없었습니다. textView의 최상위 CGPoint를 애니메이션으로 볼 수있는 방법이 있습니까? –

+0

다음 코드를 사용하지 않으려 고 시도했습니다 ... CGPoint scrollPoint = textView.bounds.origin; 도 시도했습니다 ' CGPoint scrollPoint = textView.contentOffset; [그래픽 뷰] [UIView animateWithDuration : 0 애니메이션 :^(void) {[textView setContentOffset : scrollPoint];}] ' [self.view.layer removeAllAnimations]도 시도했습니다. 하지만 UIView에서 애니메이션을 호출 할 때부터 레이어의 제거를 요청하면 아무 것도하지 않을 것이라고 생각합니다. 다른 모든 의견을 크게 높이십시오. –

+1

@CABearsfan 내가 너라면 UIAnimatin 대신 NSTimer를 사용할 것이다. NSTimer 실행 루프의 위치를 ​​업데이트하십시오. scrollPoint = CGPointMake (lastPoint.x, lastPoint.y + 1); lastPoint = scrollPoint; 그래서 원할 때 멈출 수 있습니다 ;-) – PeakJi

0

을 이전 애니메이션/취소 건너 뜁니다을 애니메이션을 시작한 후 경과 한 시간을 계산하고 일시 중지 한 순간의 오프셋을 계산합니다. 더 간단한 해결책이 있어야합니다. drawRect의 NSString drawAtPoint가 타이머를 사용하여 drawRect를 반복적으로 호출하여 위치를 업데이트 할 수 있습니다.

관련 문제