2009-11-22 9 views
0

UIScrollView를 만들고 scrollview 내부에 큰 이미지를 추가하여 스크롤했습니다. 내 질문은 X와 Y처럼 scrollview 내부에 추가 한 이미지의 현재 위치를 어떻게 알 수 있습니까? 예를 들어 이미지를 가로로 스크롤하면 이미지의 새로운 X 값과 Y 값을 알 수 있습니다.UIScrollView 내부 개체의 현재 위치

답변

2

scrollview.contentOffset을 참조하십시오. 스크롤 한 후에 스크롤 뷰의 왼쪽 상단 모서리에 표시되는 점의 좌표를 가져야합니다.

+0

그것은 contentOffset의 x와 y가 항상 0 인 것처럼 보입니다. UIScrollView 내부의 이미지를 스크롤 할 때마다 업데이트되지 않습니다. – domlao

+0

몇 가지 코드를 보여주십시오. 방금 확인한 후 스크롤 할 때 scrollView가 contentOffset을 변경합니다. – mahboudz

+0

맙소사, 내 문제는 NSLog에서 % f 대신 % d를 사용했습니다. 예 :) – domlao

3

이것은 약간의 수학을 필요로합니다. 두 가지 속성이 당신에게 중요하다 (모두 CGPoint들)이 있습니다

  • 의 수퍼 내 위치를 귀하의 이미지의 frame.origin
  • 는 IS 스크롤 뷰의 contentOffset에게 스크롤 뷰의 보이는 부분 기본적으로 당신이 ㅁ 말할 것이다, 이미지 뷰의 frame.origin.xframe.origin.y 속성을 잡고있다 수행 할 작업을

이미지가 스크롤 뷰의 절대 원점에 상대적입니다. 그런 다음 스크롤보기의 contentOffset.xcontentOffset.y을 가져 와서 이미지보기의 xy에서 빼십시오. 그러면 이미지 뷰의 상대적인 원점이 화면에 제공됩니다.

+0

실제로 작동하지 않는 경우 frame.origin 및 contentOffset의 x ​​및 y는 항상 0 값을 반환합니다. – domlao

+1

그런 다음 코드에 문제가 있습니다. 전에 비슷한 계산을하기 위해 여러 번 사용해 왔습니다. –

+0

예, 방금 NSLog에서 잘못된 변수 형식을 사용했습니다. 감사. – domlao