774просмотров
26.6%от подписчиков
6 марта 2026 г.
Score: 851
Juice it up with UIKit Dynamics 😣 UIKit Dynamics — забытый фреймворк для physics‑анимаций, который делает UI живым без Core Animation. Статья показывает, как прикрутить пружинящий список цветов к UICollectionView — пальцем водишь, ячейки подпрыгивают реалистично. ✏️ Как работает:
➡️ UIDynamicAnimator в layout — симулирует физику
➡️ UIAttachmentBehavior на каждую ячейку — пружина, привязанная к центру
➡️ shouldInvalidateLayout(forBoundsChange:) — при скролле (pan gesture) сдвигает anchor пружины по расстоянию от пальца: близко = спокойно, далеко = подпрыгивает ⚙️ Performance хак (без setUp() для всех items):
➡️ Set<IndexPath> отслеживает добавленные пружины
➡️ layoutAttributesForElements -> addSpringIfNeeded только для видимых
➡️ animator.items(in: rect) возвращает physics‑позиции 😮 Результат: скролл как в Reels — плавный, с естественным отскоком. UICollectionViewLayoutAttributes конформит UIDynamicItem, поэтому всё работает из коробки. Вот код пружины: let spring = UIAttachmentBehavior(item: item, attachedToAnchor: item.center)
spring.length = 0
spring.frequency = 1.0 // жёсткость
spring.damping = 2.0 // затухание
animator.addBehavior(spring) ❓ Используете у себя такое?