2013-02-21 93 views
1

我有一个UIView类别,应该从一个点到另一个动画UIButton的动画。它正在运行,但按钮不会移动。看起来动画是成功的,但根本没有动作。animateWithDuration不是动画UIButton

该按钮由一个重复的NSTimer调用,该按钮被倒计时到按钮被动画的一个点(每秒检查一次以查看是否为真,如果剩余点 - 当剩余点== 0有生命时)。还有一个定时器每0.01秒调用一次麦克风电平的工作,但如果我增加频率,它仍然不起作用。

我认为我的动画代码是可以的 - 但有些东西阻止了动画显示正确。如果我在viewDidLoad动画之前(尽管它开始于结束点并动画到我将按钮放置在故事板中的位置),但如果我在程序流中设置了动画效果,则它不起作用。

该类别正确指出了我的终点,并在5秒钟后“完成”。

的类别:

@implementation UIView (Animation) 
- (void) moveTo:(CGPoint)destination duration:(float)secs option:(UIViewAnimationOptions)option 
{ 
    NSLog(@"moveTo Category. destination: %@ and duration %f", NSStringFromCGPoint(destination), secs); 
    [UIView animateWithDuration:secs delay:0.0 options:option 
        animations:^{ 
         self.frame = CGRectMake(destination.x,destination.y, self.frame.size.width, self.frame.size.height); 
         NSLog(@"self.frame: %@", NSStringFromCGRect(self.frame)); 
        } 
        completion:^(BOOL finished){ 
         NSLog(@"done"); 
        }]; 
} 
@end 

代码动画:

[rewardAnimationButton moveTo:CGPointMake(100, 100) duration:5.0 option:0]; 
+0

你的症状让我觉得你正在使用自动布局。你在使用自动布局吗? – NJones 2013-02-21 21:11:41

+0

@NJones是的 - 这个项目默认开启。当我回家时我会尝试关掉它。我不知道自动布局与核心动画混淆。 – glenstorey 2013-02-22 03:15:50

回答

3

你关闭自动布局为您的XIB文件/故事板?据称自动布局会占据视图位置,并干扰动画。

你也可以尝试动画你的按钮的中心,而不是框架。如果视图的变换不是标识,那么frame属性是未定义的。

+1

我有和他一样的问题,但是如果我不想使用autolayout呢? – JomanJi 2013-02-24 09:33:21