
Как вы можете видеть на анимации выше, текст
- conversation
- meeting
- lecture
анимированы.
Однако у такого подхода есть недостатки.
Размер текста непостоянен. среди разных текстовых блоков. Следующий блок текста имеет другой размер текста.
- Transform
- conversation/ meeting/ lecture
- to Quick Note
Есть идеи, как мы можем добиться того, чтобы все текстовые блоки имели одинаковый размер текста и выглядели как одно предложение?
Или, как мы можем сделать текстовые блоки, имеющие постоянный размер текста, но способные выполнять перенос строки на следующую строку, чтобы они выглядели как одно предложение?
В настоящее время это фрагмент кода, которым я являюсь. используя.
import SwiftUI
struct ContentView: View {
var array = ["lecture", "conversation", "meeting"]
@State var currentIndex : Int = 0
@State var firstString : String = ""
var body: some View {
VStack {
HStack {
Text("Transform")
.lineLimit(1)
.minimumScaleFactor(0.5)
.font(.title)
Text(firstString)
.lineLimit(1)
.minimumScaleFactor(0.5)
.font(.title)
.transition(AnyTransition.opacity.animation(.easeInOut(duration:1.0)))
.background(.yellow)
Text("to Quick Note")
.lineLimit(1)
.minimumScaleFactor(0.5)
.font(.title)
}.padding()
}
.animation(.default)
.onAppear {
firstString = array[0]
let timer = Timer.scheduledTimer(withTimeInterval: 2.0, repeats: true) { _ in
if currentIndex == array.count - 1 {
self.firstString = array[0]
currentIndex = 0
}
else {
self.firstString = array[currentIndex+1]
currentIndex += 1
}
}
}
}
}
#Preview {
ContentView()
}
Подробнее здесь: https://stackoverflow.com/questions/792 ... -in-a-text
Мобильная версия