Резиновая кнопка с динамикой UIKit

Я хотел бы создать резиновую кнопку в моем приложении iOS: когда пользователь нажимает кнопку, он уменьшает свой кадр, и когда пользователь отпускает кран, он будет расти, немного расширяться, а затем возвращаться к исходному размеру с помощью эффект отскока, как если бы он был сделан из резины. Я видел эту кнопку в некоторых других приложениях, и я уверен, что они использовали динамику iOS 7 UIKit для реализации этого эффекта. Я проверил различное поведение динамики UIKit, но ни один из них не кажется полезным, поскольку ни один из них не меняет размер фрейма. Мне было интересно, есть ли намек на то, как реализовать это поведение?

4 Solutions collect form web for “Резиновая кнопка с динамикой UIKit”

Вероятно, это не UIKitDynamics а просто анимация.

UIKitDynamics используется для перемещения предметов по экрану и применения физики к столкновениям и т. Д. …

Вы можете использовать новый метод анимации …

 - (void)animateWithDuration:(NSTimeInterval)duration delay:(NSTimeInterval)delay usingSpringWithDamping:(CGFloat)dampingRatio initialSpringVelocity:(CGFloat)velocity options:(UIViewAnimationOptions)options animations:(void (^)(void))animations completion:(void (^)(BOOL finished))completion; 

Это изменит анимацию, но применит эффект пружины к кривой анимации.

Если вы измените рамку кнопки внутри блока анимации, она «подведет» новый кадр и будет выглядеть резиновой.

Вы можете узнать больше об этом здесь … http://www.oliverfoggin.com/animate-with-springs/

Как ответил Фогмейстер, анимация с пружинным демпфированием – ваш друг. Если вы хотите настроить таргетинг на старые версии iOS, вы можете написать код анимации в этих строках:

 [UIView animateWithDuration:duration animations:^{ // increase to 1.1 of the final size } completion:^(BOOL finished) { // reduce to final size in new animation block } 

Хотя это, очевидно, не так гибко, как весенняя механика в iOS 7, визуально выглядит очень похоже.

Как отметил @Fogmeister, самый простой способ – оживить масштаб кнопки с помощью нового метода UIView «анимировать … usingSpring …» iOS 7. Я загрузил образец gists для вашей ссылки на https: // gist. github.com/mrtj/9089823

Код примера каталога UIKit Dynamics включает демонстрацию того, что вы пытаетесь достичь. Более подробно см. Здесь .

В основном вам понадобится комбинация UIAttachmentBehavior и UIPushBehavior .

  • Встряхните UIView ... но используя UIKit Dynamics
  • Почему UIKit Dynamics не работает?
  • Как заставить несколько UIImages одновременно падать с гравитацией?
  • Как вы достигаете той же анимации, что и приложение iOS 7 Reminders с UIKit Dynamics?
  • Динамика UIKit на UITableView
  • UICollectionViewFlowLayout привязывает ячейку к месту с помощью UIKitDynamics
  • CollectionView + UIKit Динамика сбой на performBatchUpdates:
  • UIDynamics и Autolayout
  • Можно ли приостановить UIDynamicAnimator без удаления и добавления UIDynamicBehaviours?
  • Динамика UIKit: распознавание закругленных фигур и границ
  • Возможно ли узнать, когда завершил работу?
  • PhoneC: Разработка iOS проста с помощью XCode, Swift3, UITableView, cocatouch, давайте создадим приложения для iPhone, iPad и Macbook.