【问题标题】:Anyone have code to substitute for UILongPressGestureRecognizer?任何人都有代码可以替代 UILongPressGestureRecognizer?
【发布时间】:2011-01-07 19:19:14
【问题描述】:

我想支持 3.2 之前的版本,这是唯一不想合作的符号,有人知道一些 touchesmoved 代码或我可以使用的东西来代替 UILongPressGestureRecognizer 吗?

谢谢,

尼克

【问题讨论】:

    标签: iphone ios touch uigesturerecognizer touchesmoved


    【解决方案1】:

    如您所知,对于 3.2 之前的 iOS,您应该使用 touchesBegan、Moved、Ended 和 Canceled 函数。 我认为只实现 touchesMoved 是不好的,因为如果用户按下并且在释放之前根本不移动,那么 touchesMoved 将永远不会被调用。

    相反,我使用 NSTimer 来实现长按触摸事件。 这可能不是最佳解决方案,但对我的应用程序来说效果很好。 这是一段 sn-p 代码。

    - (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event{
        isAvailable = NO;
        timer = [NSTimer scheduledTimerWithTimeInterval:DURATION target:self selector:@selector(didPassTime:) userInfo:nil repeats:NO];
    }
    
    - (void)didPassTime:(id)sender{
        isAvailable = YES;
    }
    
    - (void)touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event{
        if(isAvailable == YES){
            // still pressing after 0.5 seconds 
        }
        else{
            // still pressing before 0.5 seconds
        }
    }
    
    - (void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event{
        if(isAvailable == YES){
            // releasing a finger after 0.5 seconds
        }
        else {
            // releasing a finger before 0.5 seconds
                [timer invalidate];
                timer = nil;
        }
    
    
    
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-05-24
      • 1970-01-01
      • 1970-01-01
      • 2011-02-28
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多