繁体   English   中英

长按按钮即可显示UIView

[英]Show UIView on long tap on button

也许有人已经问过这个问题,但是我还没有找到。

我的屏幕上有一些按钮,当用户点击一个按钮(按住该按钮约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")
    }
}
    //set gesture recognizer for long press
    UILongPressGestureRecognizer *gestureRecognizer = [[UILongPressGestureRecognizer alloc] initWithTarget:self action:@selector(longPressedHandler:)];
    [button addGestureRecognizer:gestureRecognizer];
    [gestureRecognizer release];
 UILongPressGestureRecognizer *longpress = [[UILongPressGestureRecognizer alloc] initWithTarget:self action:@selector(action:)];
                longpress.minimumPressDuration = 0.3;
 [<button> addGestureRecognizer:longpress];

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

}

使用上面的代码段,可以帮助您在长按和长按时间修改后触发动作。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM