动画矩形,使其向上/向下

时间:2020-04-16 20:25:46

标签: swift xcode swiftui

我在相机上创建了一条简单的Rectangle()线,现在我被卡在要使其上下移动的位置。线条应该从顶部的相机容器移动到底部,反之亦然,以便模拟扫描仪。

我想可以通过在Rectangle()轴上移动y来提供正值,直到扫描仪命中position,然后向y提供负值,直到再次到达定义位置具有恒定或无限的重复。

也许这很简单,但是我仍然是SwiftUI和iOS的新手,所以我不知道该怎么做。

这是现在的样子: enter image description here

这是代码:

VStack {
    Spacer()
    BackgroundView()
        .padding(EdgeInsets(top: 0, leading: 0, bottom: 15, trailing: 0))
    ZStack {
        CBScanner(supportBarcode: [.ean8, .ean13, .upce])
            .interval(delay: 2.0)
            .found{
          // barcode found other code
        }
        Rectangle()
        .trim()
        .background(ColorsStatic.redish)
            .foregroundColor(ColorsStatic.redish)
            .frame(width: 350, height: 1)
    }.frame(width: 350, height: 180)
}

1 个答案:

答案 0 :(得分:1)

import SwiftUI

struct ContentView: View {

    @State private var animating = false

    var body: some View {
        VStack {
            Spacer()
            ZStack {
                Rectangle()
                    .trim()
                    .background(Color.red)
                    .foregroundColor(Color.red)
                    .frame(width: 350, height: 1)
                    .offset(y: animating ? 90 : -90)
                    .animation(Animation.linear(duration: 1).repeatForever())

            }.frame(width: 350, height: 180)
            .onAppear {
                self.animating.toggle()
            }
            .background(Color.green)
        }
    }
}