2011-09-24 7 views
0

저는 이런 식으로 UIPanRecognizer를 만들었습니다.UIPanRecognizer가 작동하지 않습니다. 내 견해가 다시 그려지지 않습니다.

- (void)pan:(UIPanGestureRecognizer *)gesture 
{ 
    if ((gesture.state == UIGestureRecognizerStateChanged) || 
     (gesture.state == UIGestureRecognizerStateEnded)) { 
     CGPoint translation = [gesture translationInView:self]; 
     self.origin = CGPointMake(
     self.origin.x+translation.x,self.origin.y+translation.y); 
     [gesture setTranslation:CGPointZero inView:self]; 
} 

}

하지만 내보기 다시 그려 결코 극복, 즉 제의 drawRect이 늘 다시 호출 할 수 ... 의미한다. 아무도 이것을 시도한 적이 없습니까? 내의 ViewController에서

나는이

UIGestureRecognizer *pan = [[UIPanGestureRecognizer alloc] initWithTarget:self.graphView action:@selector(pan:)]; 
[self.graphView addGestureRecognizer:pan]; 
[self updateUI]; 

내에 updateUI 당신이보기에 제스처 인식기를 부착 할 때 당신은 당신의 updateUI 방법을 요구하고있다

- (void)updateUI { [self.graphView setNeedsDisplay]; } 
+0

이 코드가 다시 그리기를 트리거해야하는 이유가 표시되지 않습니다. – Eiko

+0

편집 내 게시물 – WYS

답변

1

입니다 있습니다. 콜백 메소드 pan:에서이 작업을 수행해야합니다.

또한 메모리 누수가 있습니다. 할당 후 UIGestureRecognizer을보기에 추가하면 release이됩니다.

+0

하지만 내 updateUI 내 viewcontroller 내 팬 : 내 graphView에 있습니다. 나는 이미 그것을 발표했다, 나는 단지 코드의 그 부분을 게시하지 않았다. – WYS

+0

오, 고마워, 나는 내 냄비에 [self setNeedsDisplay]를 넣음으로써 지금 다시 그릴 수있다 : – WYS

+0

시스템 당신이 그것을 할 수 있습니다. – Mundi

관련 문제