이 문제를 가진 다른 사람들을 찾고 있으며 비슷한 문제가있는 사람을 볼 수 없습니다.제스쳐가 인식되지 않음 (2 손가락 더블 탭) : Xcode 9.1
문제 : 새로운 xcode로 업그레이드되었으며 지금 iOS11을 지원합니다. (내 응용 프로그램은 필요하지 않지만 인터페이스 빌더 파일을 더 이상 지원하지 않는 애플에 의해 강제된다 - 응용 프로그램을 응용 프로그램 저장소에 업로드하려고 할 때 오류 메시지가 표시됨).
코드가 매우 단순한 것처럼 보입니다 (항상 그렇지는 않습니다!). 최소한의 예제를 만들고 첨부했습니다. 간단한 단일 페이지 앱입니다. 뷰를로드하고 일부 제스처를 인식합니다. 단일 탭 제스쳐가 작동합니다. 두 번 탭하지 않습니다. 더블 탭은 2 개의 단일 탭으로 인식됩니다 (아마도 합리적 일 수 있습니다). 단일 탭 캡처를 제거하고 2 손가락 2 탭 제스처의 핸들러를 트리거하려고했습니다. 인식되지 않습니다. 빈 nib 파일을 사용하는 ios5.x에서 모두 작업해야합니다.
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
// Override point for customization after application launch.
self.window = [[UIWindow alloc] initWithFrame:[UIScreen mainScreen].bounds] ;
self.appViewController = [[myViewController alloc] initWithNibName:nil bundle:nil];
self.window.rootViewController = self.appViewController;
//@property(nullable, nonatomic,strong) UIViewController *rootViewController NS_AVAILABLE_IOS(4_0); // from "UIWindow"
[self.window makeKeyAndVisible];
self.window.backgroundColor = [UIColor redColor];
return YES;
}
의 ViewController
#import <UIKit/UIKit.h>
@interface AppDelegate : UIResponder <UIApplicationDelegate>
@property (strong, nonatomic) UIWindow *window;
@end
구현 ... : : 여기
은 AppDelegate에 파일입니다 코드는 너무 간단 보인다@interface ViewController()
@property (retain,readwrite) UITapGestureRecognizer *twoFingerDoubleTap_yyz;
@property (retain,readwrite) UITapGestureRecognizer *oneFinger;
@end
@implementation ViewController
- (void)viewDidLoad {
[super viewDidLoad];
// Do any additional setup after loading the view, typically from a nib.
//add gesture Double tap to open a view.
self.twoFingerDoubleTap_yyz = [[UITapGestureRecognizer alloc]initWithTarget:(id)self action:@selector (twoFingerDoubleTap:) ];
[self.view addGestureRecognizer:self.twoFingerDoubleTap_yyz];
self.twoFingerDoubleTap_yyz.numberOfTapsRequired = 2;
self.twoFingerDoubleTap_yyz.numberOfTouchesRequired = 2;
/*
self.oneFinger = [[UITapGestureRecognizer alloc]initWithTarget:(id)self action:@selector (oneFingerTap:) ];
[self.view addGestureRecognizer:self.oneFinger];
self.oneFinger.numberOfTapsRequired = 1;
self.oneFinger.numberOfTouchesRequired = 1;
*/
}
-(IBAction)twoFingerDoubleTap: (UITapGestureRecognizer *) sender
{
NSLog(@"i'm here 2 !");
}
-(IBAction)oneFingerTap: (UITapGestureRecognizer *) sender
{
NSLog(@"i'm here 1 !");
}
- (void)didReceiveMemoryWarning {
[super didReceiveMemoryWarning];
// Dispose of any resources that can be recreated.
}
@end
, 그래서 비난 싶습니다 Xcode에 대한 문제 (새 9.1은 더블 탭을 인식하지 못하는가?) 또는 ios11에서. 그러나 문제가있는 다른 사람을 볼 수 없기 때문에 나는 뭔가를 놓치고 있다고 생각해야합니다. (참고 : 실제 기기에서는이 기기를 사용하지 않았으므로 이번에는 iOS7.x 이상을 실행해야합니다. 내 원래 iPad는 업그레이드가 필요합니다 .- 마침내!?)
업데이트 : 그것은 꽤 관련이 있기 때문에 주석 섹션에서 여기로 옮겼습니다.) 두 손가락 싱글 탭도 테스트에서 작동했습니다. 2 손가락을 두 번 두드리기 만하면 안됩니다!
하지만 2 손가락 더블 탭이 필요했습니다. 나는 또한 당신이 말한 것을 시도했는데 이드는 나를 위해 일하지 않았다!? Huummm? 수정 - 단일 손가락 두 번 탭 작동했습니다. 그것은 작동하지 않는 2 손가락 버전입니다. – BitKick
그것은 터치 수를 유지하면서 도청 수를 유지하면서 작동합니다. –
또한 두 손가락 1 탭을 작동합니다. - 그걸 시도해 봤어. 그렇게하면 xcode가 이중 터치를 인식하지 못한다는 생각을하지 않게됩니다. – BitKick