首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >使用长按时显示两个动作单

使用长按时显示两个动作单
EN

Stack Overflow用户
提问于 2011-10-14 00:14:18
回答 1查看 914关注 0票数 0

在我的viewDidLoad中,我有以下内容:

代码语言:javascript
运行
复制
UILongPressGestureRecognizer *longpressGesture =[[UILongPressGestureRecognizer alloc] initWithTarget:self action:@selector(handleLongpressGesture:)];
longpressGesture.minimumPressDuration = 1;
longpressGesture.allowableMovement = 5;
longpressGesture.numberOfTouchesRequired = 1;
[self.tableView addGestureRecognizer:longpressGesture];
[longpressGesture release];

我创建了以下内容:

代码语言:javascript
运行
复制
-(IBAction) handleLongpressGesture:(UIGestureRecognizer *) sender {

    UIActionSheet *actionSheet = [[UIActionSheet alloc] initWithTitle:@"Delete Record?" delegate:self cancelButtonTitle:nil destructiveButtonTitle:nil otherButtonTitles:@"Yes",@"No",nil];
    [actionSheet showInView:self.view];
    [actionSheet release];
}

使用模拟器,当我长按时,出现两个动作单而不是一个动作单。

有什么想法可以解释为什么会这样吗?

模拟器有问题吗?

EN

回答 1

Stack Overflow用户

发布于 2011-10-14 00:56:49

模拟器不是问题。

当手势经历不同的状态(开始、结束等)时,手势处理程序会被多次调用。

您需要在处理程序方法中检查手势的state

代码语言:javascript
运行
复制
-(IBAction) handleLongpressGesture:(UIGestureRecognizer *) sender {
    if (sender.state == UIGestureRecognizerStateBegan)
    {
        UIActionSheet *actionSheet = [[UIActionSheet alloc] init...
        [actionSheet showInView:self.view];
        [actionSheet release];
    }
}
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7757124

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档