Будучи незнакомым с SwiftUI и тем фактом, что пока еще мало документации по этой новой среде.Мне было интересно, если бы кто-нибудь был знаком с тем, как можно было бы анимировать Path
в SwiftUI.
Например, с учетом представления, скажем так: RingView
:
struct RingView : View {
var body: some View {
GeometryReader { geometry in
Group {
// create outer ring path
Path { path in
path.addArc(center: center,
radius: outerRadius,
startAngle: Angle(degrees: 0),
endAngle: Angle(degrees: 360),
clockwise: true)
}
.stroke(Color.blue)
// create inner ring
Path { path in
path.addArc(center: center,
radius: outerRadius,
startAngle: Angle(degrees: 0),
endAngle: Angle(degrees: 180),
clockwise: true)
}
.stroke(Color.red)
.animation(.basic(duration: 2, curve: .linear))
}
}
.aspectRatio(1, contentMode: .fit)
}
}
Отображается:
Теперь мне было интересно, как мы можем анимировать внутреннее кольцо, то есть красную линию внутри синей линии,Анимация, которую я ищу, была бы простой анимацией, в которой путь появляется от начала и проходит до конца.
Это довольно просто, используя CoreGraphics и старый фреймворк UIKit, но это не похоже надобавление простого .animation(.basic(duration: 2, curve: .linear))
к внутреннему пути и отображение вида с помощью блока withAnimation
делает все что угодно.
Я посмотрел предоставленные Apple учебники по SwiftUI, но они действительно охватывают анимацию перемещения / масштабирования только на более подробных видах, таких как Image
.
Любое руководство о том, как анимировать Path
или Shape
в SwiftUI?