2009-09-28 4 views
0

OS 3.1을 사용하여 UIScrollView에 탭 감지 이미지보기 (Apple의 Scroll View 제품군 샘플에서 가져옴)를 배치하고 표시 될 때 이미지보기를 두 번 확대하려고합니다. 첫 번째 확대/축소는 전체 이미지를 표시하고 두 번째 확대/축소는 지정된 영역을 확대하는 것입니다. 내가 지금있는 것은 :연속 된 UIScrollView 확대/축소

- (void)viewDidLoad { 
    // After adding scroll view and image view 
    imageScrollView.minimumZoomScale = 0.5; 
    imageScrollView.maximumZoomScale = 2.75; 
    imageScrollView.zoomScale = 1.0; 
    [UIView beginAnimations:nil context:nil]; 
    [UIView setAnimationDuration:1];  
    [UIView setAnimationBeginsFromCurrentState:YES]; 
    [UIView setAnimationDelegate: self]; 
    [imageScrollView zoomToRect:[imageView frame] animated:YES]; 
    [UIView commitAnimations]; 

하고 다음 첫 번째 줌의 끝을 감지하고 실행하는 데 두 번째 :

- (void)scrollViewDidEndZooming:(UIScrollView *)scrollView withView:(UIView *)view atScale:(float)scale { 
    selectedRect.origin.x = 60.0; 
    selectedRect.origin.y = 90.0; 
    selectedRect.size.width = 90.0; 
    selectedRect.size.height = 90.0; 

    imageScrollView.minimumZoomScale = 1.0; 
    imageScrollView.maximumZoomScale = 2.75; 
    imageScrollView.zoomScale = 2.5; 
    [UIView beginAnimations:nil context:nil]; 
    [UIView setAnimationDuration:1];  
    [UIView setAnimationBeginsFromCurrentState:YES]; 
    [UIView setAnimationDelegate: self]; 
    [imageScrollView zoomToRect:selectedRect animated:YES]; 
    [UIView commitAnimations]; 

무슨 일이 무한 루프와 스크롤이 발생한다는 것입니다 두 개의 확대 된 점 사이에서 반복적으로 "흔들기"를 봅니다. 나는 무엇을 다르게해야 하는가? 고맙습니다.

답변

1

확실히 scrollViewDidEndZooming의 첫 번째 동작으로 현재 zoomScale을 확인하면됩니다. 이미 확대 한 경우 새 확대/축소를 수행하지 마십시오.