스와이프 기능에 대해 간략히 적어보겠습니다.
ㄴ 이런식은 좀더 생각하면 답이 나올거 같습니다.
간단하게 좌우, 상하 정도입니다.
소스코드입니다.
- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event
{
UITouch *touch = [touches anyObject];
_gestureStartPos = [touch locationInView:self.view];
}
- (void)touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event
{
UITouch *touch = [touches anyObject];
CGPoint curEndPos = [touch locationInView:self.view];
CGFloat deltaX = fabsf(_gestureStartPos.x - curEndPos.x);
CGFloat deltaY = fabsf(_gestureStartPos.y - curEndPos.y);
if(deltaX >= kMinGestureLength && deltaY <= kMaxVariance)
{
if(_gestureStartPos.x < curEndPos.x)
_messageLabel.text = @"Left -> Right Horizontal swipe detected";
else
_messageLabel.text = @"Right -> Left Horizontal swipe detected";
[self performSelector:@selector(eraseText) withObject:nil afterDelay:2];
}
else if(deltaY >= kMinGestureLength && deltaX <= kMaxVariance)
{
if(_gestureStartPos.y < curEndPos.y)
_messageLabel.text = @"Up -> Down Vertical swipe detected";
else
_messageLabel.text = @"Down -> Up Vertical swipe detected";
[self performSelector:@selector(eraseText) withObject:nil afterDelay:2];
}
}
- (void) eraseText
{
_messageLabel.text = @"";
}
_gestureStartPos는 CGPoint로 전역선언 해주었습니다.
_messageLabel는 UILabel입니다. IBOutlet으로 연결해주면 되겠네요.
kMinGestureLength는 스와이프 길이입니다. 100정도 주었구요.
kMaxVariance는 편차입니다. 5정도 주었습니다.
'□컴퓨터 관련 > ★iPhone Developer' 카테고리의 다른 글
iOS5 Tech Talk World In Seoul (0) | 2011.12.11 |
---|---|
한글완성형(EUC-KR)을 iPhone/Mac에서 사용할 수 있는 언어셋으로 변환하기 (2) | 2011.01.31 |
UITextView 설정하기! (0) | 2011.01.25 |
Google AdMob (0) | 2011.01.21 |
IPHONE 에서 국가 설정 값 및 언어 설정 값 가져 오는 법. (0) | 2011.01.21 |
iPhone 어플리케이션을 앱스토어에 배포하는 과정 (0) | 2011.01.17 |
자주 쓰는 NSString Method (0) | 2010.12.20 |