2014-10-08 85 views
0

顯示UIView也許有人已經問過這個問題,但我還沒有找到它。我有一些按鈕在我的屏幕上,當用戶點擊一個按鈕(並保持約2秒),一個新的UIView應該出現在用戶正在點擊的位置。就像iOS鍵盤上的一個按鈕一樣,如果您點按(例如)「E」按鈕,它應顯示包含一些額外按鈕的新視圖。長按按鈕

我沒有找到任何解決方案如何做到這一點,所以請幫助我,如果你知道如何解決這個問題。

編輯: 我已經添加了LongPressGestureRecognizer,但這個手勢永遠不會被解僱。

這裏是我的代碼:

var longPressGestureRecognizer = UILongPressGestureRecognizer(target: self, action: "buttonLongPressed:") 
    longPressGestureRecognizer.minimumPressDuration = 1.5 
    longPressGestureRecognizer.allowableMovement = 1 

    for buttonTitle in buttonTitles{ 
     var button : UIButton! 
     if(buttonTitle.length == 1) { 
      button = createButtonWithTitle(buttonTitle) 
     } else { 
      button = createButtonWithImage(buttonTitle) 
     } 

     button.addGestureRecognizer(longPressGestureRecognizer) 
    } 


func buttonLongPressed(recognizer : UILongPressGestureRecognizer) -> (Void) { 
    NSLog("tapped") 
    if(recognizer.state == UIGestureRecognizerState.Failed) { 
     NSLog("failed") 
    } 
    if(recognizer.state == UIGestureRecognizerState.Ended) { 
     NSLog("ended") 
    } 
    if(recognizer.state == UIGestureRecognizerState.Began) { 
     NSLog("began") 
    } 
} 

回答

1
//set gesture recognizer for long press 
    UILongPressGestureRecognizer *gestureRecognizer = [[UILongPressGestureRecognizer alloc] initWithTarget:self action:@selector(longPressedHandler:)]; 
    [button addGestureRecognizer:gestureRecognizer]; 
    [gestureRecognizer release]; 
+0

「longPressedHandler:」看起來像什麼?什麼參數?我怎樣才能得到用戶點擊的位置? – beeef 2014-10-08 11:10:09

+0

我也想實現這個功能,當用戶點擊一個按鈕並且輕掃時,它總是應該激活當前用戶手指所在的按鈕。因爲通常情況下,如果您點擊一個按鈕,該按鈕將保持「活動」狀態,直到您釋放它爲止。 – beeef 2014-10-08 11:11:30

1
UILongPressGestureRecognizer *longpress = [[UILongPressGestureRecognizer alloc] initWithTarget:self action:@selector(action:)]; 
       longpress.minimumPressDuration = 0.3; 
[<button> addGestureRecognizer:longpress]; 

- (void)action:(UILongPressGestureRecognizer *)gesture { 

} 

使用上面的代碼片斷它可以幫助你在長按和長按時間後觸發一個動作可以被修改。

+0

好的,謝謝!當用戶用手指從一個按鈕滑動到另一個按鈕時,如何使用此事件? – beeef 2014-10-08 11:16:26

+0

一旦與此屬性allowableMovement檢查。 – 2014-10-08 11:19:59

+0

我編輯了我的問題,它不工作... – beeef 2014-10-08 11:59:36