我在UIView上有一个类别,应该将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 :(得分:3)
您是否关闭了XIB文件/故事板的自动布局?据说自动布局接管视图放置,并干扰动画。
您也可以尝试动画按钮的中心而不是框架。如果视图的变换不是标识,则frame属性是未定义的。