我正在开发一款游戏,我正在缩小imageView的帧大小。当我使用while循环引入条件时,我无法看到图像逐渐减小其大小,因为它会立即跳转到最终结果。所以,我想在每条指令之后引入延迟,以便我可以一点一点地看到它的尺寸减小的效果。 我不能使用计时器,因为它需要我指定在该时间间隔之后执行的功能。
while(ravanImage1.frame.origin.y>=end.y)
{
ravanImage1.frame=CGRectMake(150,((ravanImage1.frame.origin.y)-5),q,z);
if(ravanImage1.center.y>=300&&ravanImage1.center.y<=370)
{
q=60;
z=60;
ravanImage1.frame=CGRectMake(150,((ravanImage1.frame.origin.y)-5),q,z);
}
if(ravanImage1.center.y>=230&&ravanImage1.center.y<=299)
{
q=40;
z=40;
ravanImage1.frame=CGRectMake(150,((ravanImage1.frame.origin.y)-5),q,z);
}
if(ravanImage1.center.y>=150&&ravanImage1.center.y<=229)
{
q=20;
z=20;
ravanImage1.frame=CGRectMake(150,((ravanImage1.frame.origin.y)-5),q,z);
}
}
我想在每次换帧后引入延迟。
有人可以帮助我吗?
答案 0 :(得分:2)
如何使用
[NSThread sleepForTimeInterval:]
介于每条指令之间?
答案 1 :(得分:1)
如果您只需要在开发期间暂停更改,请使用调试器的断点。
要发布,您应该使用动画块进行更改。为每个可能的更改创建一个单独的块,然后将动画持续时间设置为您想要的。
作为一般规则,您永远不会直接更改视图的框架,除非您希望它是瞬时的。为此目的精确地存在动画,即创建将视图状态的变化传达给用户的效果。他们不只是眼睛糖果。
如果出于某种原因,您不想使用动画,可以将每个大小更改移动到它自己的方法中,然后使用计时器调用每个方法。你可以调用第一个方法,它将设置一个定时器来调用第二个方法,这将设置一个定时器来调用第三个,依此类推。
答案 2 :(得分:0)
所以使用计时器并给它一个功能,这将占用适当的时间来执行,但对你的显示器没有影响?也许在你的程序中的正确位置运行一长串毫无意义的计算?