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

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

  • Анимировать автоматический макет с использованием UIKitDynamics
  • Использование с UICollectionViewFlowLayout с UIDynamics
  • UIDynamicAnimator Встряска с пружинным эффектом
  • Экран выбора жанра Apple Music
  • UICollectionView для самостоятельной калибровки на iOS 8 будет сбой с UIDynamic flowLayout и повторением вызова _updateVisibleCellsNow
  • Как заставить несколько UIImages одновременно падать с гравитацией?
  • Встряхните UIView ... но используя UIKit Dynamics
  • Как копировать сообщения, отскакивающие пузырьки в iOS 7
  • Репликация сообщений iOS7 Сообщения UIKitDynamics с CollectionView
  • UICollectionViewFlowLayout привязывает ячейку к месту с помощью UIKitDynamics
  • Динамика UIKit на UITableView
  • Interesting Posts

    «Отсутствуют сертификаты» при добавлении профиля инициализации iOS для оповещений о синтаксическом анализе

    self.navigationController.interactivePopGestureRecognizer.enabled = NO; не работает в iOS 8

    iOS Facebook SDK Login View иногда показывает Desktop Web, а не Mobile Web

    SWIFT: «SecPolicy» не имеет члена с именем «takeRetainedValue»

    Базовая ошибка данных относится к несуществующему атрибуту основных данных рефлексивного отношения «многие ко многим»

    Контакты контактных данных плагина cordova дублируют, а не переписывают контактные данные

    Контакты. Доступ к значениям телефонов

    Как программно выбирать строку в UITableView в Swift 1.2 (Xcode 6.4)

    OCMock и NSFileManager

    Ошибка UIActionSheet на iPad / не iPhone

    Внедрить подборщик документов в быстром (iOS)

    Почему я получаю ошибку Apple Mach-O Linker?

    Событие значения Firebase не запускается все время в автономном режиме

    NSAttributedString изменяет цвет в конце строки

    Получить выбранную строку UIDatePicker во время вращения

    Давайте будем гением компьютера.