我让分段控件工作,但是当我移动它时,它给了我最奇怪的错误。我只能点击一次然后停止工作。
这是我的动画代码,它正在弄乱分段控件
- (void)moveUnitsUp:(UIView*) element {
// Create an animation that will change the position of a layer
CABasicAnimation *mover = [CABasicAnimation animationWithKeyPath:@"position"];
[mover setDuration:0.12];
[mover setBeginTime:CACurrentMediaTime()+0];
// Setting starting position
CGPoint initialPoint = [element.layer position];
[mover setFromValue:[NSValue valueWithCGPoint:initialPoint]];
// Setting ending position
CGPoint finalPoint = CGPointMake(initialPoint.x, initialPoint.y - 50);
[mover setToValue:[NSValue valueWithCGPoint: finalPoint]];
// MAKE SURE IT DOESN'T MOVE BACK TO STARTING POSITION
[mover setRemovedOnCompletion:NO];
[mover setFillMode:kCAFillModeForwards];
// Add it to the layer
[element.layer addAnimation:mover forKey:@"BigMove"];
// SET THE POSITION TO THE STARTING POSITION
[element.layer setPosition:finalPoint];
}
非常感谢你的帮助: - )
答案 0 :(得分:0)
看起来你的“移动者”只移动.layer而不是实际的分段条。该层只是控制器的表示,实际的控制器仍然在它开始的位置。要解决此问题,您还需要将实际控制器转换为动画结束时的新位置。
类似的东西:
element.transform = CGAffineTransformMakeTranslation(0,-50);