2012-06-22 5 views
0

touchesBegan 및 touchesMoved를 기반으로 UIBezierPath를 렌더링하는 UIView가 있습니다. 하지만 UIVI 내의 특정 영역을 그리기 만하면됩니다. 터치 만 등록 된 UIView 내에서 CGRect를 설정하고 싶습니다. 이 영역 밖의 모든 접촉은 등록되지 않습니다.UIView는 특정 영역의 터치 만 허용합니다.

사용자가이 사각형 밖으로 벗어나면 이상적으로 터치 할 수 있지만 touchesBegan 메서드는 해당 영역으로 다시 드래그 할 때 호출됩니다.

아무도 도와 드릴 수 있습니까? 감사.

답변

1

사용 pointInside : withEvent : 영역 외부에 있으면 점을 받아들이지 않도록 지시합니다.

- (BOOL)pointInside:(CGPoint)point withEvent:(UIEvent *)event{ 
    return [self isPointWithinMyBounds:point]; 
} 

- (BOOL) isPointWithinMyBounds:(CGPoint) point{ 
    //determine if the point is within the rect 
    return NO; 
} 

touchesMoved 이벤트는 복합 이벤트입니다. 보기 밖에있는 동안 그리기를 중단하면됩니다.

하지만 원하는 효과를 얻을 수 있습니다.

0

사용자는 의도 한 터치 영역에 맞게 현재 보이지 않는 UIView를 표시 할 수 있습니다. 그런 다음 제스처 인식기를 해당보기에만 추가하면됩니다.

관련 문제