IOSDEV Telegram 1628
This media is not supported in your browser
VIEW IN TELEGRAM
Элегантное решение для растягивающегося заголовка в 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
Please open Telegram to view this post
VIEW IN TELEGRAM
1339👍22🔥126❤‍🔥5



tgoop.com/iosdev/1628
Create:
Last Update:

Элегантное решение для растягивающегося заголовка в 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

BY iOS Dev


Share with your friend now:
tgoop.com/iosdev/1628

View MORE
Open in Telegram


Telegram News

Date: |

Your posting frequency depends on the topic of your channel. If you have a news channel, it’s OK to publish new content every day (or even every hour). For other industries, stick with 2-3 large posts a week. Some Telegram Channels content management tips Unlimited number of subscribers per channel Hui said the time period and nature of some offences “overlapped” and thus their prison terms could be served concurrently. The judge ordered Ng to be jailed for a total of six years and six months.
from us


Telegram iOS Dev
FROM American