我正在构建一个简单的旋转圆加载动画。我已经让圆圈旋转,但容器视图也在动画持续时间内向下移动。我无法弄清楚是什么导致了这种奇怪的行为。
例子:
白色边框是父视图ZStack。红色边框是VStack我放置的以显示这种奇怪的动画怪异。蓝色边框是ZStack包含两个Circle动画的 s 的 。
这是代码:
struct CustomLoadingView: View {
let viewWidth: CGFloat = UIScreen.main.bounds.width * 0.5
let backgroundCircleLineWidth: CGFloat = UIScreen.main.bounds.width * 0.025
let foregroundCircleLineWidth: CGFloat = UIScreen.main.bounds.width * 0.02
@State var rotationDegree: Angle = Angle.degrees(0)
var body: some View {
VStack(spacing: 0) {
ZStack {
Circle()
.stroke(style: StrokeStyle(lineWidth: backgroundCircleLineWidth))
.fill(Global.Colors.primary60)
Circle()
.trim(from: 0, to: 0.15)
.stroke(style: StrokeStyle(lineWidth: 7, lineCap: .round))
.fill(Global.Colors.secondary50)
.rotationEffect(self.rotationDegree)
}
.frame(width: viewWidth, height: viewWidth)
.border(Color.blue)
.animation(Animation.linear(duration: …Run Code Online (Sandbox Code Playgroud)