我想向按鈕添加一個動畫,使按鈕從A點移到B點。
下面的代碼可以做到。但奇怪的是該按鈕被移動,它不能再檢測到觸摸。
如果你,如果我點擊按鈕的原始位置,它可以觸發按鈕事件。是否我的代碼中缺少任何東西? 請幫幫我。UIButton在CABasicAnimaton之後的錯誤位置接收到touchEvents
- (IBAction)button:(id)sender
{
UIButton *lineButton = [UIButton buttonWithType:UIButtonTypeRoundedRect];
[lineButton addTarget:self action:@selector(press:)forControlEvents:UIControlEventTouchUpInside];
[lineButton setFrame:CGRectMake(50, 50, 50, 50)];
[self.view addSubview:lineButton];
CABasicAnimation *lineAnimation;
lineAnimation = [CABasicAnimation animationWithKeyPath:@"position"];
[lineAnimation setRemovedOnCompletion:NO];
[lineAnimation setDuration:0.15];
[lineAnimation setFillMode:kCAFillModeForwards];
[lineAnimation setTimingFunction:[CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionEaseOut]];
CGRect rect = CGRectMake(100, 200, 50, 50);
lineAnimation.fromValue = [NSValue valueWithCGPoint: CGPointMake(50, 50)];
lineAnimation.toValue = [NSValue valueWithCGPoint:CGPointMake(CGRectGetMidX(rect), CGRectGetMidY(rect))];
[lineAnimation setAutoreverses:NO];
[lineButton.layer addAnimation:lineAnimation forKey:@"line"];
}
謝謝你,萊昂納多! – NikoTung 2012-08-07 01:32:53
歡迎您。 :)只記得把這個答案設置爲正確的答案。 – 2012-08-07 05:04:14