Резиновая кнопка с динамикой 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 .

  • Динамика UIKit: приложение внутри UITableViewCell
  • Встряхните UIView ... но используя UIKit Dynamics
  • UICollectionViewFlowLayout привязывает ячейку к месту с помощью UIKitDynamics
  • Динамика UIKit на UITableView
  • Объединение UIAttachmentBehavior и UICollisionBehavior
  • Как я могу узнать, когда UIDynamicAnimator находится в состоянии покоя?
  • Как копировать сообщения, отскакивающие пузырьки в iOS 7
  • Использование с UICollectionViewFlowLayout с UIDynamics
  • Внедрение UIKitDynamics для перетаскивания изображения с экрана
  • Как заставить мое представление, которое манипулирует UIPushBehavior, не вращается так сильно? Это абсурдная сумма
  • UICollectionView. Динамика UIKit Dynamics «падает» с SAME DYNAMICS в виде коллекции
  • Возможно ли узнать, когда завершил работу?
  • PhoneC: Разработка iOS проста с помощью XCode, Swift3, UITableView, cocatouch, давайте создадим приложения для iPhone, iPad и Macbook.