在我的项目中,我需要使用UIButton(或其他组件)来处理使用长按事件。 让我解释一下,我应该记住,我按住按钮一个计时器来计算秒数并释放压力停止,我尝试了UILongPressGestureRecognizer的管理,但事实并非如此,因为我记得按下按钮时的事件但是只有当我移动手指时,但是我希望计时器总是按住按钮(手指静止不动)并计数,并在手指松开时停止计数。UIButton长按手指静止
有谁知道如何帮助我? 谢谢
在我的项目中,我需要使用UIButton(或其他组件)来处理使用长按事件。 让我解释一下,我应该记住,我按住按钮一个计时器来计算秒数并释放压力停止,我尝试了UILongPressGestureRecognizer的管理,但事实并非如此,因为我记得按下按钮时的事件但是只有当我移动手指时,但是我希望计时器总是按住按钮(手指静止不动)并计数,并在手指松开时停止计数。UIButton长按手指静止
有谁知道如何帮助我? 谢谢
使用按钮事件这两种方法。当您按下按钮时将调用touchDown
,并且当您从按钮上抬起手指时将调用touchUp
。计算这两种方法之间的时间差。您也可以在touchDown
开始计时并在touchUp
停止/重新启动它。
//connect this action with Touch up inside
- (IBAction)touchUp:(id)sender {
NSLog(@"up");
}
//connect this to tocuh down
- (IBAction)touchDown:(id)sender{
NSLog(@"down");
}
更新 在编码,你可以这样写
[btn addTarget:self action:@selector(touchUp:) forControlEvents:UIControlEventTouchUpInside];
[btn addTarget:self action:@selector(touchDown:) forControlEvents:UIControlEventTouchDown];
和厦门国际银行
同样的我已经做了...正如你说UILongPressGestureRecognizer,我不明白它..但你可以写在-(void)handleLongPress:(UILongPressGestureRecognizer *)gestureRecognizer { }
里面的代码。我通过使用这种方法做了同样的事情,并取得了成功的结果.. :)。你甚至不需要添加计时器,代替ü可以使用...
UILongPressGestureRecognizer *lpgr = [[UILongPressGestureRecognizer alloc]
initWithTarget:self action:@selector(handleLongPress:)];
lpgr.minimumPressDuration = 1.0;
lpgr.delegate = self;
我觉得这工作完全..
谢谢,但如果我按住按钮上的手指锁定,它也可以工作?我尝试使用UILongPressGestureRecognizer,但它只有当我移动我的手指 – AleMal 2012-02-22 07:10:40
它应该工作。除非你在UIScrollView中有这个按钮,否则你的UIGestureRecognizer会干扰这个。 – 2012-02-22 08:39:01
我不明白你的问题。你可以试着用不同的方式说出来吗? – 2012-02-22 06:16:03
嗨,我需要按一个按钮,并计算如何mutch秒我按它(如何mutch时间我的手指是在它上面),如果我保持我的手指上一个按钮5秒计时器启动并计数5秒,然后我释放按钮定时器停止。 – AleMal 2012-02-22 06:29:10