2010-06-16 3 views
3

UIScrollview에서 스크롤/드래그 할 때 scrollview에서 스크롤/드래그 한 양을 나타내는 scrollOnContentOffset의 변경 사항이 있습니다. 이 방법으로 스크롤을 위해 scrollview의 하위 뷰를 업데이트했습니다.확대/축소를 위해 UIScrollview에서 얼마나 많은 contentOffset이 변경됩니까?

그러나 (핀치 확대/축소를 사용하여) 스크롤보기를 확대/축소하면 스크롤보기의 contentOffsets도 변경됩니다. 변경 내용을 zoomScale 값과 관련시킬 수 없기 때문에 contentOffset이 얼마나 변경되었는지 이해할 수 없습니다. 자, 어쨌든 contentOffset의 변화를 알기 위해 어쨌든 존재합니까?

필자의 의도는 zooming (컨텐츠 확대/축소 변경으로 인해 확대되지 않기 때문에) 중에 드래그하는 것에 대한 contentOffset 변경의 가치를 얻음으로써 스크롤 뷰의 하위 뷰를 적절히 업데이트 할 수 있도록합니다.

여기에 갇혀 있습니다. 어떤 도움이라도 대단히 감사하겠습니다.

감사

답변

5

난 작은 테스트 프로젝트를 설정 한, 그리고 그것은 contentOffset가 zoomScale 곱처럼 보이는 Shaikot. 따라서 계정을 원할 경우 사용하기 전에 zoomScale으로 나눕니다.

아마도 작은 예제로 설명하는 것이 가장 좋습니다. scrollView를 설정하고 주변을 스크롤하고 조금 크게 확대 할 수있는 뷰를 추가했습니다. 그 견해로, 나는 작은 위치에 계속 머물고 싶은 작은 빨간색보기를 추가했습니다. 는 내가있는 ScrollView의 contentOffset 속성을 관찰하고있어, 나는 이런 식으로 구현했습니다

CGPoint contentOffset = self.scrollView.contentOffset; 
CGFloat zoomScale = self.scrollView.zoomScale; 

self.moveView.frame = CGRectMake((contentOffset.x+10)/zoomScale, 
           (contentOffset.y+10)/zoomScale, 
           10, 
           10); 

이 화면에 같은 위치에 moveView을 유지, 사용자가 확대하는 경우에만 스케일링.

이 내용이 조금 비워지기를 바랍니다. 그러나 도움이 더 필요하면 알려주세요.

관련 문제