2016-11-01 7 views
0

画面インタラクション(長押し)がuiviewに移動してから一定期間時間。UIViewで既存の画面インタラクションが終了して停止する場合のアクションを実行します。

EDIT:システムのドロップダウンメニューがあり、ボタンを長押しするとメニューが表示されます。次に、ユーザーはオプションにスライドしてタップを放します。私は起こったメニュー項目を教えて、それに応じて行動したいと思います。

答えて

0

ロングプレス機能のUIViewに以下のジェスチャーを追加します。

var longTap = UILongPressGestureRecognizer(target: self, action: #selector(self.longTouch)) 
    longTap.numberOfTapsRequired = 0 // Set your own number here 
    longTap.minimumPressDuration = 1.0 //Set your duration here 
    longTap.delegate = self// Add the <UIGestureRecognizerDelegate> protocol 
    self.view.addGestureRecognizer(longTap) 

以下

func gestureRecognizer(_ gestureRecognizer: UIGestureRecognizer, shouldRecognizeSimultaneouslyWithGestureRecognizer otherGestureRecognizer: UIGestureRecognizer) -> Bool { 
    return true 
} 

デリゲートを追加セレクタが

func longTouch(_ recognizer: UILongPressGestureRecognizer) { 
    if recognizer.state == .began { 
     print("longTouch UIGestureRecognizerStateBegan") 
    } 
    if recognizer.state == .ended { 
     print("longTouch UIGestureRecognizerStateEnded") 
    } 
} 

のObjective Cのバージョン

UILongPressGestureRecognizer *longTap = [[UILongPressGestureRecognizer alloc] initWithTarget:self action:@selector(longTouch:)]; 
    [longTap setNumberOfTapsRequired:0]; // Set your own number here 
    [longTap setMinimumPressDuration:1.0]; // Set your duration here 
    [longTap setDelegate:self]; // Add the <UIGestureRecognizerDelegate> protocol 
    [self.view addGestureRecognizer:longTap]; 

ドと呼ばれるありますLGATE: -

- (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldRecognizeSimultaneouslyWithGestureRecognizer:(UIGestureRecognizer *)otherGestureRecognizer 
{ 
    return YES; 
} 

セレクタ: -

- (void) longTouch: (UILongPressGestureRecognizer *)recognizer 
{ 
    if (recognizer.state == UIGestureRecognizerStateBegan) 
    { 
     NSLog(@"longTouch UIGestureRecognizerStateBegan"); 
    } 
    if (recognizer.state == UIGestureRecognizerStateEnded) 
    { 
     NSLog(@"longTouch UIGestureRecognizerStateEnded"); 
    } 
} 
+0

がobj cでこれを取得することができます。私は本当に迅速にわからない。 –

+0

objバージョンのコードで解答を編集しました。 –

+0

ありがとう、私はこれを試してみます。 –

関連する問題