微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

iOS点击手势状态开始没有命中

我用点击手势识别器制作了一个可点击的视图,工作得很好.但我希望在触摸发生时突出显示视图,并在触摸结束时将其移除.

我试过这个:

- (IBAction)refresh:(UITapGestureRecognizer *)sender {
    if(self.currentStatus == NODATA){
        if(sender.state == UIGestureRecognizerStateBegan){
            NSLog(@"Began!");
            [self.dashboardViewController.calendarContainer state:UIViewContainerStatusSELECTED];
        }
        if (sender.state == UIGestureRecognizerStateEnded){
             NSLog(@"%@",@"Ended");
            [self.dashboardViewController.calendarContainer state:UIViewContainerStatusnorMAL];
        } 
        [self setState:REFRESHING data:nil];
    }
}

“Ended确实”的NSLog显示但是开始没有显示,所以它永远不会被选中.为什么是这样?

解决方法

UITapGestureRecognizer永远不会进入UIGestureRecognizerStateBegan状态.只有连续手势(例如滑动或捏合)才会使识别器从UIGestureRecognizerStatePossible变为UIGestureRecognizerStateBegan.离散手势(例如点按)将其识别器直接放入UIGestureRecognizerStateRecognized,即单击一下,直接进入UIGestureRecognizerStateEnded.

也就是说,也许你正在寻找一个UILongPressGestureRecognizer,这是一个连续的识别器,它将进入UIGestureRecognizerStateBegan,让你能够识别触摸的开始和结束?

原文地址:https://www.jb51.cc/iOS/332917.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐