2012-08-22 4 views
-5

가로 테이블 뷰를 사용하며 5 초마다 이미지를 변경하려고합니다. 나는 이전 이미지가 페이드 아웃과 새가 페이드 때문에 페이드 애니메이션 이미지를 변경하려면 내가이 메서드를 호출 그래서 :. 여기수평 테이블보기를 스크롤 할 때 애니메이션 페이드 아웃

self.slideTimer = [NSTimer scheduledTimerWithTimeInterval:5 
                target:self 
               selector:@selector(slideToNextImage) 
               userInfo:nil 
                repeats:YES]; 

그리고를 내 내 실현으로 slideToNextImage:

self.lastIndexPath = indexPath; 
[UIView beginAnimations:@"FadeAnimations" context:nil]; 
[UIView setAnimationDuration:2]; 
self.horizontalView.alpha = 0.1f; 
[self.horizontalView.tableView scrollToRowAtIndexPath:self.lastIndexPath 
     atScrollPosition:UITableViewScrollPositionMiddle 
       animated:NO]; 
[UIView commitAnimations]; 
[UIView beginAnimations:@"FadeAnimations" context:nil];  
[UIView setAnimationDuration:2]; 
self.horizontalView.alpha = 1.0f; 
[UIView commitAnimations]; 

이미지가 너무 빠르게 페이드되고 두 번째 이미지가 페이드 애니메이션없이 스크롤됩니다.

+1

당신은 당신이 원하는과 문제가 무엇인지 무엇인지에 대해 좀 더 많은 정보를 제공 할 수 있습니다! – Sebrassi

+0

몇 가지 스크린 샷을 작성하여 질문을 지정하십시오. – holex

+0

죄송합니다, 내 게시물을 편집했습니다. 도움이 되셨을 바랍니다. – user801255

답변

3

첫 번째 애니메이션이 끝날 때까지 기다리지 않고 시작됩니다.

이 대신 같은 것을보십시오 :

[UIView animateWithDuration:2.0 animations:^{ 
    self.horizontalView.alpha = 0.1f; 
    [self.horizontalView.tableView scrollToRowAtIndexPath:self.lastIndexPath 
             atScrollPosition:UITableViewScrollPositionMiddle 
               animated:NO]; 

} completion:^(BOOL finished) { 
    [UIView animateWithDuration:2 animations:^{ 
     self.horizontalView.alpha = 1.0f; 
    }]; 
}]; 
+0

감사합니다,이 효과가 있지만 애니메이션이 부드럽지 않습니다. scrollToRowAtIndexPath :가 수행 될 때 약간의 지연이 발생합니다. 부드럽게 만들 수 있습니까? – user801255

+0

이 코드는 애니메이션이 고르지 않게 만드는 문제는 아닙니다. 그렇지 않으면 처리 능력을 높이거나 메모리를 많이 사용합니까? – James

+0

두 번째 애니메이션 바로 전에 완료 블록 내에서 scrollToRow 메서드 호출을 이동할 수 있습니다. – Sebrassi

관련 문제