2011-10-26 3 views
0

이미지가 여러 개 있습니다. 다음 다이어그램으로 설명하려고합니다 :uiscrollview 스크롤 영역 제한

--|----------|---------|--- 
    | 1  | 2  | 
    |   |   | 
--|----------|---------|--- 
    | 3  | 4  | 
    |   |   | 
--|----------|---------|--- 

위 그림에서 1,2,3 및 4는 큰 이미지의 섹션입니다. UIScrollView 내에서 UIImageView를 사용하고 있습니다. 한 번에 한 부분을 사용자에게 보여주고 있습니다. 섹션이 개별 이미지 인 것처럼 나타납니다. 섹션 3을 보여 주면 이미지의 모든 부분을 숨기고 섹션 3은 섹션 3이 화면 중간에 나타나도록 이미지 좌표를 변경합니다. 지금까지 모든 것이 잘 작동합니다. 이제 섹션의 확대/축소를 구현해야합니다. 섹션을 확대/축소 한 후에는 사용자가 섹션 내에서만 스크롤 할 수 있으며 확대 된 섹션 외부로 스크롤 할 수 없습니다. 나는 uiscrollview의 contentoffset과 contentsize 속성을 설정 한 것처럼 그 일을 구현할 수 없다. 화면 밖으로 이미지를 가져온다.

아무에게도 이것을 구현하는 방법을 제안 할 수 있습니까?

다음은 scrollview를 배치하는 데 사용하는 코드입니다.

- (void)scrollViewDidZoom:(UIScrollView *)scrollView 
{ 
    float updatedCurrFrameX = originalFrame.origin.x*[scroll zoomScale]; 
    float updatedCurrFrameY = originalFrame.origin.y*[scroll zoomScale]; 
    float updatedCurrFrameWidth = originalFrame.size.width*[scroll zoomScale]; 
    float updatedCurrFrameHeight = originalFrame.size.height*[scroll zoomScale]; 

    CGRect visibleRect=CGRectMake(updatedCurrFrameX, updatedCurrFrameY, updatedCurrFrameWidth, updatedCurrFrameHeight); 
    scroll.contentSize= visibleRect.size; 
    scroll.contentOffset=visibleRect.origin; 



} 

답변

0

사용자 줌 (scrollViewDidEndZooming:withView:atScale:)는 다음과 contentSizecontentOffset 설정하여 적절하게 대처 때 UIScrollViewDelegate 통지하여야 구현. contentSize 및 오프셋을 조정하여 원하는 효과를 얻을 수없는 경우 확대 할 때 scrollView의 documentView를 변경하는 것이 좋습니다.