首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >iphone - stop and restore方法

iphone - stop and restore方法
EN

Stack Overflow用户
提问于 2009-12-08 10:53:22
回答 1查看 268关注 0票数 0

我正在使用这个函数来创建移动,我如何停止移动?我希望它恢复到起始点。谢谢。

代码语言:javascript
复制
[NSTimer scheduledTimerWithTimeInterval:0.02 target:self selector:@selector(shuffleOnTimer) userInfo:nil repeats:YES];

-(void) shuffleOnTimer {

    jb.center = CGPointMake(jb.center.x+pos1.x,jb.center.y+pos1.y);

    if(jb.center.x > 60 || jb.center.x < 0)
    pos1.x = -pos1.x;
    if(jb.center.y > 240 || jb.center.y < 100)
    pos1.y = -pos1.y;}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2009-12-08 11:01:30

在某些情况下,您应该使计时器无效。为了做到这一点,你需要存储一个对它的引用:

在您的头文件中:

代码语言:javascript
复制
@class myClass : NSObject {
    ....
    NSTimer      *timer;
    CGPoint      originalPoint;
    ...
}
@property (nonatomic, readwrite, assign) NSTimer *timer;
@property (nonatomic, readwrite) CGPoint originalPoint;

在您的实现文件中:

代码语言:javascript
复制
self.originalPoint = jb.position;
self.timer = [NSTimer scheduledTimerWithTimeInterval…

正如后面的一些观点:

代码语言:javascript
复制
[self.timer invalidate];
self.timer = nil;         //very important, to avoid dangling pointers
jb.position = self.originalPoint;
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1864282

复制
相关文章

相似问题

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