如何在整个屏幕上移动几个按钮

时间:2011-02-13 08:33:58

标签: iphone animation timer

我正在创建一个应用程序,我在屏幕上有几个按钮,我想让它们在整个屏幕上移动。用户可以点击那些按钮和用户点击的按钮从屏幕上移除。因此我必须停止移动该按钮的计时器。

但我主要担心的是如何使所有气泡移动,即如何管理它们?

我已经使用了NSTimer。

NSTimer* timer = [NSTimer timerWithTimeInterval:1 target:self selector:@selector(moveTheButton) userInfo:nil repeats:YES]; [[NSRunLoop currentRunLoop] addTimer:timer forMode:NSRunLoopCommonModes];

但如果我只有一个按钮,这可能会有所帮助。如果有更多的按钮,很难管理定时器。

按钮数量也是动态的。

请建议一些备用。

我已经完成了几个线程,但没有得到预期的答案。

提前感谢您的帮助.....

2 个答案:

答案 0 :(得分:1)

我建议使用CAAnimations移动按钮。这样您就可以在不使用NSTimers的情况下平滑地设置按钮动画,也非常适合动态创建按钮动画。

创建CAAnimations然后添加到视图层。您可以使用CAAnimations为视图的旋转,位置和大小设置动画。从视图层添加和删除动画也很容易,使其成为动态内容的理想选择,而不会出现多个NSTimers的麻烦。

答案 1 :(得分:0)

UIButton应如何移动?你的意思是像Brownian motion一样随机移动每个按钮吗? :D

嗯,我猜这真的没关系,但是让我们考虑你有一个通用函数来确定给定当前位置的每个按钮的行为,在这种情况下你可以使用{{ 1}}每次跟踪所有按钮位置,只需在单NSArray上调用此函数(然后在其元素中循环)作为NSArray的选择器。

如果您没有单个通用函数,但每个按钮都有自己的函数,则可以为每种运动子类化UIButton,并为实现正确运动的每个类实现一个方法。然后你可以在NSTimer中调用一个循环遍历按钮引用数组的函数,并为每个实例调用实现的运动方法(通过多态)