2012-03-29 2 views
0

UIScrollview가 scrollViewDidScroll 대리자 메서드에서 스크롤하는 동안 멋진 CA3DTransform을 수행하고 있습니다. 손가락으로 스크롤 할 때 완벽하게 작동하므로 수동으로 스크롤하면 모든 것이 완벽합니다. 그것은 여전히 ​​어떻게 든 부품, 위임 방법 scrollviewdidscroll를 호출, 그래서 같은 애니메이션 방법이라고, 그래서 여전히 올바른 애니메이션을 볼 수 있지만,CATransform3D 이상한 UIScrollView contentOffset

[scrollView setContentOffSet:CGPointMake(0,460) animated:YES]; 

: 프로그램처럼이있는 ScrollView contentoffset을 설정

하지만, 애니메이션 도중 및 후에 뷰가 누락되었습니다! 나는 모든 것을 layer.z 위치로 설정하려고 시도했지만 도움이되지 않습니다. 수동 스크롤은 뷰의 일부가 누락되지 않고 작동하기 때문에 괜찮을 것입니다 ... 어떻게 든이 메소드를 프로그래밍 방식으로 호출하면 다른 이유가 없습니다!

+0

CATransform3D 코드를 게시하십시오. 원근감이나 클리핑 평면에 이상이있을 수 있습니다. 또는 3D 퍼스펙티브를 비활성화하고 뷰가 여전히 올바르게 표시되는지 확인하십시오. 그런 다음 문제를 결정할 때까지 3D 코드를 조각 단위로 가져올 수 있습니다. – Sam

+0

3D를 사용하지 않도록 설정 한 다음 문제가 없으므로 프로그래밍 방식으로 스크롤 할 때만 3D를 사용하는 것이 좋습니다. –

답변

0

위와 같은 방법으로 질문을 게시하는 것은 scrollViewDidScroll 대리인이 수동 또는 프로그래밍 방식으로 코드를 인쇄 할 수 있다는 점을 감안하면 명확하지 않습니다.

... 
UIScrollView *sv = [[UIScrollView alloc] initWithFrame:CGRectMake(0, 10, 320, 200)]; 
[sv setContentSize:CGSizeMake(640, 200)]; 
sv.delegate = self; 
[sv setContentOffset:CGPointMake(320, 0) animated:YES]; 
[self.view addSubview:sv]; 
... 

- (void)scrollViewDidScroll:(UIScrollView *)scrollView { 
    NSLog(@"---%@---", NSStringFromCGPoint(scrollView.contentOffset)); 
} 

이 간단한 예제에서는 위임이 실제로 작동하는 것을 볼 수 있습니다. 답변의 단순함을 알 수 있지만 질문하는 유일한 질문은 도움을주기 어렵습니다.

0

(슬라이드 쇼의 경우 scrollview를 사용하는 맥락에서) 비슷한 문제가 있지만 scrollRectToVisible:NO (애니메이션이없는 경우 NO)을 사용하여 해결했으며 애니메이션 코드를 넣은 UIView 애니메이션 블록 안에 래핑했습니다.

+1

흥미로운, 오늘 시도해 볼 수도 있습니다 .. –

관련 문제