ฉันต้องการเพิ่มการจดจำท่าทางการปัดอย่างง่ายในโครงการ iPhone ตามมุมมองของฉัน ควรจดจำท่าทางสัมผัสในทุกทิศทาง (ขวา, ลง, ซ้าย, ขึ้น)
มีระบุไว้ในเอกสารสำหรับ UISwipeGestureRecognizer:
คุณสามารถระบุหลายทิศทางโดยระบุค่าคงที่ UISwipeGestureRecognizerDirection หลายตัวโดยใช้ตัวดำเนินการแบบบิตหรือ ทิศทางเริ่มต้นคือ UISwipeGestureRecognizerDirectionRight
อย่างไรก็ตามสำหรับฉันมันไม่ได้ผล เมื่อทั้งสี่ทิศทางเป็น OR'ed จะรับรู้การกวาดนิ้วไปทางซ้ายและขวาเท่านั้น
- (void)viewDidLoad {
UISwipeGestureRecognizer *recognizer;
recognizer = [[UISwipeGestureRecognizer alloc] initWithTarget:self action:@selector(handleSwipeFrom:)];
[recognizer setDirection:(UISwipeGestureRecognizerDirectionRight | UISwipeGestureRecognizerDirectionDown | UISwipeGestureRecognizerDirectionLeft | UISwipeGestureRecognizerDirectionUp)];
[[self view] addGestureRecognizer:recognizer];
[recognizer release];
[super viewDidLoad];
}
-(void)handleSwipeFrom:(UISwipeGestureRecognizer *)recognizer {
NSLog(@"Swipe received.");
}
ฉันแก้ไขสิ่งนี้ด้วยการเพิ่มตัวจดจำสี่ตัวในมุมมอง แต่ฉันอยากรู้ว่าทำไมมันถึงไม่ทำงานตามที่โฆษณาในเอกสาร?
- (void)viewDidLoad {
UISwipeGestureRecognizer *recognizer;
recognizer = [[UISwipeGestureRecognizer alloc] initWithTarget:self action:@selector(handleSwipeFrom:)];
[recognizer setDirection:(UISwipeGestureRecognizerDirectionRight)];
[[self view] addGestureRecognizer:recognizer];
[recognizer release];
recognizer = [[UISwipeGestureRecognizer alloc] initWithTarget:self action:@selector(handleSwipeFrom:)];
[recognizer setDirection:(UISwipeGestureRecognizerDirectionUp)];
[[self view] addGestureRecognizer:recognizer];
[recognizer release];
recognizer = [[UISwipeGestureRecognizer alloc] initWithTarget:self action:@selector(handleSwipeFrom:)];
[recognizer setDirection:(UISwipeGestureRecognizerDirectionDown)];
[[self view] addGestureRecognizer:recognizer];
[recognizer release];
recognizer = [[UISwipeGestureRecognizer alloc] initWithTarget:self action:@selector(handleSwipeFrom:)];
[recognizer setDirection:(UISwipeGestureRecognizerDirectionLeft)];
[[self view] addGestureRecognizer:recognizer];
[recognizer release];
[super viewDidLoad];
}
-(void)handleSwipeFrom:(UISwipeGestureRecognizer *)recognizer {
NSLog(@"Swipe received.");
}