Обновить непрозрачность текста в SwiftUI ScrollView на основе ScrollTransitionIOS

Программируем под IOS
Ответить
Anonymous
 Обновить непрозрачность текста в SwiftUI ScrollView на основе ScrollTransition

Сообщение Anonymous »

Как увеличить и уменьшить непрозрачность элементов Text в зависимости от фазы? Если фаза равна идентичности, то непрозрачность текста должна быть равна 1. Когда вид на краю прокрутки видим на 1/3, непрозрачность текста должна постепенно увеличиваться от 0 до 1 по мере его прокрутки. Аналогично, оно должно уменьшаться с непрозрачностью 1-0, когда изображение выходит из поля зрения. Обратите внимание, что RoundedRectangle с наложенным текстом предназначен только для демонстрации. В конечном итоге он будет заменен пользовательским представлением с несколькими элементами, включая представление Text.

Код: Выделить всё

struct ColorScroll: View {
private let colors = [Color.red, Color.blue, Color.green, Color.yellow, Color.brown, Color.indigo, Color.purple]
private let titles = ["Color.red", "Color.blue", "Color.green", "Color.yellow", "Color.brown", "Color.indigo", "Color.purple"]

var body: some View {
let itemWidth = 150.0
VStack(spacing: 20) {
ScrollView(.horizontal, showsIndicators: false) {
HStack(spacing: 10) {
ForEach(colors.indices, id: \.self) { index in
ZStack {
RoundedRectangle(cornerRadius: 25.0)
.fill(colors[index])
.frame(width: itemWidth, height: 200)
.overlay(alignment: .leading) {
Text(titles[index])
.font(.title2)
}
.scrollTransition(.interactive, axis: .horizontal) { content, phase in
content.offset(x: phase.isIdentity ? 0 : phase.value * -itemWidth/2)
}
}
.clipShape(RoundedRectangle(cornerRadius: 25))
}
}
.scrollTargetLayout()
.padding(.horizontal, 20)
}
.frame(height: 200)
Spacer()
}
}
}
Любая помощь приветствуется.

Подробнее здесь: https://stackoverflow.com/questions/787 ... transition
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «IOS»