2011-09-10 4 views
2

화면을 스크롤 할 때 나는 터치 위치를 얻으려고합니다. touchBegin()에서 가져 오려고하지만 그럴 수 없습니다. 스크롤하는 동안 touchBegin이 호출되지 않았기 때문입니다. 어떻게이 문제를 해결할 수 있습니까 ??? 빨리 답변 해주세요.scrollViewDidScroll 메서드에서 어떻게 위치를 터치 할 수 있습니까?

+0

내용의 크기가 내보기 프레임보다 큰, 나는 touchesBegan 방법을 입력 할 수 없습니다. scrollViewDidScroll 메서드가 호출되고 touchesBegan 메서드를 후크하기 때문에. 그래서 나는 볼 수있는 자세를 취할 수 없다. – bTagTiger

답변

2

나는 스스로 해결책을 찾았습니다.

먼저 scrollView.frame으로 scrollView.contentSize를 설정합니다. touchesBegan 내가 원하는 무엇 scrollView.contentSize을 설정할 때 그래서, scrollViewDidScroll

- (id)initWithFrame:(CGRect)frame 
{ 
    .... 
    self.frame = frame 
    self.contentSize = frame; 
    .... 
} 

둘째를 호출 할 수 없습니다. 이벤트는 scrollViewDidScroll로 이동합니다. 당신은 뭔가 행동 할 수 있습니다.

Thrid, scrollViewDidEndDecelerating에서 contentSize를 설정하고 contentOffest를 저장하십시오.

-(void) scrollViewDidEndDecelerating:(UIScrollView *)scrollView 
{ 
    CGPoint pointTemp = self.contentOffset; 
    self.contentSize = self.frame.size; 
    self.contentOffset = pointTemp; 
} 

이것은 애처로운 방법 일 것입니다. 다른 알고있는 경우있는 ScrollView 제스처 인식기를 사용하여 저

2

을 가르쳐주세요 :

-(void)scrollViewDidScroll:(UIScrollView *)scrollView 
{ 
    CGPoint positionInView = [scrollView.panGestureRecognizer locationInView:myView]; 
} 
관련 문제