2014-10-08 87 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