この問題を抱えている他の人を探していて、同様の問題を抱えている人はいません。ジェスチャーが認識されません(2指ダブルタップ):Xcode 9.1
問題:新しいxcodeにアップグレードされ、現在ios11をサポートしています。 (私のアプリはそれを必要としませんが、インターフェースビルダーのファイルをサポートしていないAppleが強制します - アプリケーションをApp Storeにアップロードしようとするとエラーメッセージが表示されます)。
コードはかなりシンプルなようです(常にそうではありません!)。 サンプルを作成しました。 シンプルなシングルページアプリ。ビューを読み込み、いくつかのジェスチャーを認識します。 シングルタップジェスチャーが機能します。ダブルタップはありません。 ダブルタップは2つのシングルタップとして認識されます(おそらく合理的かもしれません)。 シングルタップ取得を取り除き、2フィンガー2タップジェスチャーのハンドラーをトリガーしようとしました。 認識されません。 両方とも空のnibファイルを使用してios5.xで作業していた。ここで
はappDelegateファイルです:
#import <UIKit/UIKit.h>
@interface AppDelegate : UIResponder <UIApplicationDelegate>
@property (strong, nonatomic) UIWindow *window;
@end
実装...
- (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:
@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本の指でダブルタップしないだけ!
しかし、私は2本指のダブルタップが欲しかった。私もあなたが言ったことを試して、私のために働いていなかった!ヒュームム?修正 - シングルフィンガーのダブルタップが機能しました。それは、しかし、動作していない2指のバージョンです。 – BitKick
これはタッチの数を外に出すが、タップの数を保ちます。 –
それはまた、2本の指1タップで動作します。 - それも試しました。それはダブルタッチを認識しないxcodeの私の考えを排除します。 – BitKick