使按钮滑入视图

时间:2014-05-11 00:44:49

标签: objective-c uibutton

我正在制作一个游戏,我试图在视图加载时将“播放”按钮滑动到屏幕上并在到达中心时停止(而不是在视图加载时刚刚出现在屏幕上的按钮)。

我的viewDidLoad函数中有以下代码:

- (void)viewDidLoad
{

[super viewDidLoad];
// Do any additional setup after loading the view, typically from a nib.

while(playButton.center.x != 71) 
    playButtonTimer = [NSTimer scheduledTimerWithTimeInterval:0.002 target:self selector:@selector(playButtonMove) userInfo:nil repeats:YES];

}

此刻发生的一切都是当我运行应用程序时,屏幕保持黑色,当我关闭应用程序时,Xcode中出现一个窗口,上面写着“由于内存错误而终止”。

编辑: 这是我的playButtonMove函数:

-(void)playButtonMove {
playButton.center = CGPointMake(playButton.center.x - 1, playButton.center.y);
}

1 个答案:

答案 0 :(得分:2)

卸下:

while(playButton.center.x != 71) 
    playButtonTimer = [NSTimer scheduledTimerWithTimeInterval:0.002 target:self selector:@selector(playButtonMove) userInfo:nil repeats:YES];

并将其添加到您的文件中:

- (void)viewDidAppear:(BOOL)animated {
    [UIView animateWithDuration:.25 animations:^{
        playButton.center = CGPointMake(71, playButton.center.y);
    }];
}

您的应用程序正在运行,因为您在有机会开火之前重新分配了播放按钮。因此,您的while语句将始终为true。基本上你所有的应用程序现在正在创建成千上万的NSTimers,直到它崩溃。你不应该用它做动画。使用苹果内置的动画api's。