小编fla*_*ker的帖子

SwiftUI 动画:为什么容器视图会移动?我很难理解这种行为

我正在构建一个简单的旋转圆加载动画。我已经让圆圈旋转,但容器视图也在动画持续时间内向下移动。我无法弄清楚是什么导致了这种奇怪的行为。

例子:

在此输入图像描述

白色边框是父视图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)

animation ios swift swiftui

3
推荐指数
1
解决办法
1070
查看次数

标签 统计

animation ×1

ios ×1

swift ×1

swiftui ×1