У меня есть пользовательский интерфейс, в котором элемент удаляется, я хотел бы подражать эффекту "переместить в папку" в почте iOS. Эффект, когда значок маленькой буквы "бросается" в папку. Вместо этого шахта будет сброшена в корзину.
Я попытался реализовать его, используя CAAnimation
на этом слое. Насколько я могу читать в документах, мне нужно установить byValue
и a toValue
, а CAAnimation - интерполировать значения. Я ищу, чтобы сделать небольшую кривую, поэтому элемент проходит через точку немного выше и слева от позиции позиции.
CABasicAnimation* animation = [CABasicAnimation animationWithKeyPath:@"position"];
[animation setDuration:2.0f];
[animation setRemovedOnCompletion:NO];
[animation setFillMode:kCAFillModeForwards];
[animation setTimingFunction:[CAMediaTimingFunction functionWithName: kCAMediaTimingFunctionEaseOut]];
[animation setFromValue:[NSValue valueWithCGPoint:fromPoint]];
[animation setByValue:[NSValue valueWithCGPoint:byPoint]];
[animation setToValue:[NSValue valueWithCGPoint:CGPointMake(512.0f, 800.0f)]];
[animation setRepeatCount:1.0];
Я играл с этим в течение некоторого времени, но мне кажется, что Apple означает линейную интерполяцию. Добавление byValue не вычисляет хорошую дугу или кривую и анимирует элемент через него.
Как я могу сделать такую анимацию?
Спасибо за предоставленную помощь.