TGViewer
iOS Dev iOS Dev @iosdev · 7.91K subscribers
Post #1628 4.25K
Элегантное решение для растягивающегося заголовка в SwiftUI

Один из наиболее эффектно выглядящих и несложных в реализации элементов — сохранять позицию вью при скролле (чаще всего вместе с масштабированием).

📖 В этом способе, предложенном Натальей Парфёновой используется модификатор visualEffect (доступен с iOS 17).

Пример использования:
extension View {
func stretchy() -> some View {
visualEffect { effect, geometry in
let currentHeight = geometry.size.height
let scrollOffset = geometry.frame(in: .scrollView).minY
let positiveOffset = max(0, scrollOffset)

let newHeight = currentHeight + positiveOffset
let scaleFactor = newHeight / currentHeight

return effect.scaleEffect(
x: scaleFactor, y: scaleFactor,
anchor: .bottom
)
}
}
}


К слову, вот в этом проекте можно чекнуть и другие эффекты при скролле (+ работу с цветами, переходами и не только с помощью шейдеров и рендеринга текста).

😃 iOS Dev
  • 👍 22
  • 🔥 13
  • ✍ 6
  • ❤‍🔥 5
More from @iosdev
  1. Oct 5, 2026iPhone Duo UIKit Q&A: большая подборка ответов от инженеров Apple 📖 В своём блоге Антон с…
  2. Oct 1, 2026SwiftUI Charts и динамическое маскирование Одним из применений для диаграмм является разны…
  3. Sep 29, 2026⚡️Сегодня ночью десятки тысяч приложений массово начали крашиться из-за либы для аналитики…
  4. Sep 28, 2026От pbxproj к xcproj: разбор конфигураций проекта 📖 В этой статье можно посмотреть на новы…
  5. Sep 25, 2026Симулятор iPhone Duo: тестирование и оптимизация приложения Как только был анонсирован iPh…
  6. Sep 24, 2026Настоящая причина, почему на презентации не показали, как выглядит звонок с iPhone Duo. 😃…
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 →