Задать вопрос

Список стандартных анимаций для iOS?

Всем доброго дня.


Ищется описания более или менее стандартных анимаций в iOS. Уточняю: я разработчик, дизайнер спрашивает список более-менее легко реализуемых анимационных свистелок, дабы потом я не сильно материл его при их реализации. С точки зрения разработчика таких туториалов выше крыши, да я и сам могу такой написать, но вот с точки зрения именно дизайна нагуглить ничего не удалось.


Заранее спасибо.
  • Вопрос задан
  • 4005 просмотров
Подписаться 5 Оценить Комментировать
Пригласить эксперта
Ответы на вопрос 5
guskov
@guskov
Если речь идет о [UIView transitionFromView:view toView:...], то смотрите enum UIViewAnimationOptions.
Если же о CATransition.type, то kCATransitionFade и рядом с ними.
Так же с.м. UIModalTransitionStyle и UIModalTransitionStyle (для использования с [UIViewController presentModalViewController:...]).

Просто выдайте дизайнеру списки элементов enum / имена констант — он поймет :)
Ответ написан
Комментировать
Krypt
@Krypt
В основном это ускоренные движения и повороты. Стандартная продолжительность анимации — 0.3 с
В принципе, можно сделать любой изврат, но опишите ему в качестве предпочтительных и легко реализуемых те, которые можно сделать за один шаг с помощью +[UIView beginAnimations]
P.S.: изменение соотношения сторон элемента вот просто так не заанимировать, поэтому его стоит избегать.
Ответ написан
Комментировать
guskov
@guskov
Ну, и из «запрещенных» pageCurl, pageUnCurl, rippleEffect — это для CATransition.type.
Я использую их много лет, Apple не просек. Единственное, что «хитрю» в коде:
transition.type = [[@«rip» stringByAppendingString:@«pleE»] stringByAppendingString:@«ffect»];
Ответ написан
Комментировать
iago
@iago
Я бы еще посмотрел различные категории на stackoverflow и github. Например, трясучка:
- (void) rubberAnimation
{
    CGFloat transforms [] = {0.5, 1.045, 1.0, 1.03, 1.0, 1.015, 1.0};
    
    CALayer* layer = self.layer;
    
    NSMutableArray *scales = [NSMutableArray new];
    
    for(int i = 0; i < 5; ++i) {
        CATransform3D transform = CATransform3DMakeScale(transforms[i], transforms[i], 1);
        [scales addObject:[NSValue valueWithCATransform3D:transform]];
    }
    
    NSArray *times = [NSArray arrayWithObjects:@(0.0), @(0.3), @(0.44), @(0.58), @(0.58 + 0.14), @(0.58 + 0.14 * 2), @(1.0), nil];
    
    CAKeyframeAnimation *keyFrameAnimation = [CAKeyframeAnimation animationWithKeyPath:@"transform"];
    keyFrameAnimation.values = scales;
    keyFrameAnimation.keyTimes = times;
    
    keyFrameAnimation.duration = 0.7;
    keyFrameAnimation.calculationMode = kCAAnimationLinear;
    
    keyFrameAnimation.removedOnCompletion = YES;
    [layer addAnimation:keyFrameAnimation forKey:@"transform"];
}
Ответ написан
Комментировать
@lubimow
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы