Я хотел бы создать резиновую кнопку в моем приложении iOS: когда пользователь нажимает кнопку, она сокращает свой кадр, а когда пользователь отпускает кран, он будет расти, развернуть бит а затем вернуться к первоначальному размеру с эффектом подпрыгивания, как если бы он был сделан из резины. Я видел эту кнопку в некоторых других приложениях, и я уверен, что они использовали динамику iOS 7 UIKit для реализации этого эффекта. Я проверил различное поведение динамики 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/
Спасибо за указание этого метода, с его помощью я мог бы легко реализовать кнопку, которую я хотел (см. Мой собственный ответ) – MrTJ
Happy to help :) – Fogmeister
Как ответил Fogmeister, анимация с пружинным затуханием является вашим другом. Если вы хотите, чтобы предназначаться старые версиями прошивки, вы можете написать код анимации на этих линиях:
[UIView animateWithDuration:duration animations:^{
// increase to 1.1 of the final size
} completion:^(BOOL finished) {
// reduce to final size in new animation block
}
Хотя это, очевидно, не столь гибко, как пружинная механика в прошивке 7, визуально, это выглядит очень похоже.
Как @Fogmeister отметил, самый простой способ, чтобы оживить масштаб кнопки с новым UIView
метода «анимировать ... usingSpring ...» ИО 7. Я загрузил образцы г для вашей ссылки на https://gist.github.com/mrtj/9089823
Образец кода UIKit Dynamics Catalog содержит демонстрацию того, чего вы пытаетесь достичь. Более подробно см. here.
В принципе вам потребуется комбинация UIAttachmentBehavior
и UIPushBehavior
.
- 1. Борьба с динамикой ndarray
- 2. autolayout с динамикой подвиды
- 3. Оператор с динамикой C#?
- 4. Резиновая лента и колышки
- 5. Расчет снаряда с динамикой бурундук
- 6. Резиновая лента с iScroll и jQuery mobile
- 7. Следите за динамикой UITableViewCell
- 8. Утилита управления динамикой AX
- 9. Ruby sub-oject с динамикой присутствия полей
- 10. Обновление базы данных с динамической динамикой Java
- 11. TFS или GIT с динамикой nav
- 12. как доступ к объекту с динамикой proprierties
- 13. Laravel с помощью UIKit
- 14. заполненная резиновая лента в Winforms Application
- 15. Как сделать статическую переменную динамикой?
- 16. Стоп Bounce/Резиновая лента/эффект overscroll
- 17. Резиновая лента нескольких областей в javascript
- 18. Box2D с UIKit - Физика тела
- 19. Использование UIScrollView UIKit с SpriteKit
- 20. Реализация Cocos2D с UIKit (IB)
- 21. UIKit с 3D Viewer iOS
- 22. Область рисования мыши (резиновая лента) с Pixi.js/html Canvas
- 23. раздел «резиновая лента» в нижнем колонтитуле с только css
- 24. В чем разница между динамикой Microsoft CRM 2013 и динамикой Microsoft CRM онлайн
- 25. Заменить двоеточие и запятую динамикой в строке
- 26. столбцы tablix, обработанные динамикой crm Report viewer
- 27. Cocos2d & UIKit Popup
- 28. Aurelia и UIkit scrollyspy
- 29. NSOperation и проблема UIKit
- 30. SpriteKit интегрируется в UIKit
Вы правы .. Я дал один голос. –