2015-02-24 3 views
0

Я пытался создать анимацию наподобие skype bottom menu в iPhone. Я попробовал много способов решить эту проблему, но не смог настроить точное решение. Я попытался,сделать эффекты анимации точно так же, как меню приложения skype iOS

(1)CGPathAddLineToPoint 
(2)CGPathAddArc 
(3)CGPathAddArcToPoint 
(4)[UIView animateWithDuration:5000 delay:500 usingSpringWithDamping:0.5 initialSpringVelocity:0.5 options:option animations:^{ 
     square.layer.cornerRadius = 25; 
     square.layer.masksToBounds = YES; 
    } completion:^(BOOL flag){ 
     square.layer.cornerRadius = 0; 
     square.layer.masksToBounds = YES; 
    }]; 

и некоторые UIKit Динамические подходы тоже. К сожалению, никто из них не работал для меня, чтобы получить точное решение. Основная проблема, с которой я столкнулся, заключалась в том, что CornerRadius округляет весь вид, где мне нужно что-то изогнутое/Arc. Подход Ark также не обеспечил необходимого решения.

Анимация в Skype работает таким образом.

Working Demo

(1) Во-первых, пользователь нажимает на нижнем правом углу,

enter image description here

(2) Затем меню анимируется вверх с изогнутым (изогнутыми наружу) эффекта,

enter image description here

(3) После столкновения с верхней границей (я предполагаю, что он использует UIKit Dynamic и on сверху есть невидимая граница), меню показывает эффект отскока назад и снова показывает изогнутый эффект, но на этот раз кривой внутри,

enter image description here

Просьбе направлять, если я использую правильный подход или то, что я должен делать? Благодаря

ответ

1

это хорошо написано учебник о том, как создать такую ​​анимацию: http://holko.pl/2014/06/26/recreating-skypes-action-sheet-animation/

В конце урока, автор также включает в себя адрес GitHub, который хозяйничает многоразовые рамки, которые можно непосредственно использовать для создания такой эффект.

Надеюсь, это поможет.

+0

OP отметил вопрос с помощью Objective-C, ваш ответ ссылается на проект Swift. – Jasper