TGViewer
AppFiles - Mobile Development AppFiles - Mobile Development @applib · 2.18K subscribers
Post #4306 374
UISlider изнутри: почему setValue не работает во время settle-анимации и как я это обошел

В iOS 26 у UISlider появился liquid-glass-вид и физика доводки (settle) после того, как пользователь отпускает палец. Если честно, я не проверял, как это выглядело в старых версиях и как оно работало, так как до iOS 26 ни в своих проектах, ни в тех, что я писал на работе, я не использовал стандартный компонент, так как его внешний вид никого не устраивал. У такой доводки есть побочный эффект: если в этот момент дернуть setValue(_:animated:) извне, наш слайдер на один кадр едет в новую точку, а потом откатывается туда, куда его тянет settle. removeAllAnimations() не помогает: анимация идёт не через CABasicAnimation, а через property-driver на display link. Дальше про то, как я нашёл рабочий путь это исправить.

Самое неприятное в этом баге было не само дёрганье, а ощущение, что публичный API говорит "значение поставлено”, а визуальный слой через кадр отвечает “нет, я лучше вернусь куда хотел”. Поэтому я отдельно разделю два пути: runtime-фикс для понимания механики и продовый обход (хотя в личном приложении я пошел бы в прод с фиксом).

Статья: https://habr.com/ru/articles/1055466/
Платформа: iOS

👨‍🦯‍➡️ AppFiles: код, инструменты, практики, производительность
More from @applib
  1. Oct 9, 2026Как использование нейросетей изменило игровую индустрию и homebrew-cцену Игровая индустрия…
  2. Oct 9, 2026📺 Видео и подкасты за неделю • (iOS En) Pinterest Context Menu Using SwiftUI • (iOS En) C…
  3. Oct 9, 2026Spock ADB - отладка Android-приложений без выхода из IDE Анализируйте, управляйте и отлажи…
  4. Oct 8, 2026Игра на Kotlin, Jetpack Compose и Filament: что сработало, а что нет Начиналось всё как не…
  5. Oct 8, 2026Redlamp - фото-редактор для Mac, iPad и iPhone Нативный RAW фото-редактор с открытым исход…
  6. Oct 8, 2026Экран перестал обновляться, и виноват оказался не ваш код Экран получил первое состояние и…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →