#swift #swiftui
#swift #swiftui
Вопрос:
Мне нужен Text()
вид, который бесконечно масштабируется вверх и вниз на месте. У меня есть такая, которая масштабируется вверх и вниз, одновременно перемещая позиции x и y. Я не понимаю.
Как мне заставить эту штуку масштабироваться вверх и вниз, не перемещая x / y ?
Спасибо за вашу помощь!
struct ContentView: View {
@State private var pulsate: Bool = false
var body: some View {
GeometryReader { geo in
Text("Hello, World!")
.foregroundColor(Color.black)
.multilineTextAlignment(.center)
.position(x: geo.size.width * 0.12, y: geo.size.height * 0.05)
.shadow(radius: 2)
.scaleEffect(self.pulsate ? 1.0 : 1.05)
.animation(Animation.easeInOut(duration: 1).repeatForever(autoreverses: true).speed(1))
.onAppear() {
self.pulsate.toggle()
}
}
}
}
Комментарии:
1. Можете ли вы добавить GIF-изображение эффекта, который вы видите, и объяснить, что он делает, чего вы не хотите, чтобы он делал?
Ответ №1:
Позиция модификатора важна. В вашем случае это должно быть после того, как анимация не будет затронута, как в
var body: some View {
GeometryReader { geo in
Text("Hello, World!")
.foregroundColor(Color.black)
.multilineTextAlignment(.center)
.shadow(radius: 2)
.scaleEffect(self.pulsate ? 1.0 : 1.05)
.animation(Animation.easeInOut(duration: 1).repeatForever(autoreverses: true).speed(1))
.position(x: geo.size.width * 0.12, y: geo.size.height * 0.05) // << here!!
.onAppear() {
self.pulsate.toggle()
}
}
}