iOS:如何获得长按手势的持续时间?

iOS:如何获得长按手势的持续时间?,第1张

概述我正在开发一个游戏,通过长时间按住对象本身设置游戏对象的属性.属性的值由长按手势持续时间决定.为了这个目的,我使用UILongPressGestureRecognizer,所以这是这样的: [gameObjectView addGestureRecognizer:[[UILongPressGestureRecognizer alloc] 我正在开发一个游戏,通过长时间按住对象本身设置游戏对象的属性.属性的值由长按手势的持续时间决定.为了这个目的,我使用UILongPressGestureRecognizer,所以这是这样的:
[gameObjectVIEw addGestureRecognizer:[[UILongPressGestureRecognizer alloc]                                        initWithTarget:self action:@selector(handle:)]];

然后处理函数

- (voID)handle:(UILongPressGestureRecognizer)gesture {  if (gesture.state == UIGestureRecognizerStateEnded) {    // Get the duration of the gesture and calculate the value for the attribute  }}

在这种情况下,如何获得长按手势的持续时间?

解决方法 我很确定手势不存储这些信息供您访问.您只能在其上设置一个名为minimumPressDuration的属性,即在识别手势之前的时间量.

ios 5(未经测试)的解决方法:

创建一个名为timer的NSTimer属性:@property(nonatomic,strong)NSTimer * timer;

还有一个柜台:@property(nonatomic,strong)int counter;

然后@synthesize

- (voID)incrementCounter {    self.counter++;}- (voID)handle:(UILongPressGestureRecognizer)gesture {    if (gesture.state == UIGestureRecognizerStateBegan) {         self.counter = 0;         self.timer = [NSTimer scheduledTimerWithTimeInterval:1 target:self selector:@selector(incrementCounter) userInfo:nil repeats:yes];    }    if (gesture.state == UIGestureRecognizerStateEnded) {        [self.timer invalIDate];    }}

所以当手势开始启动一个每秒钟触发递增方法的定时器,直到手势结束.在这种情况下,您将要将minimumPressDuration设置为0,否则手势将不会立即开始.然后做任何你想要的柜台!

总结

以上是内存溢出为你收集整理的iOS:如何获得长按手势的持续时间?全部内容,希望文章能够帮你解决iOS:如何获得长按手势的持续时间?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1111475.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-29
下一篇 2022-05-29

发表评论

登录后才能评论

评论列表(0条)

保存