我一直在尝试一些 SwiftUI 布局,我想尝试的一件事是创建一个简单的圆形进度环。在玩了一段时间代码之后,我设法让一切都按照我希望的方式工作,至少对于原型来说。当我将此视图嵌入 SwiftUI NavigationView 时,问题就出现了。现在,每次我在画布、模拟器或设备上运行该应用程序时,进度环的初始加载都会使整个视图缓慢向上滑动到位。
这是一个简单的原型,只是摆弄了新的 SwiftUI 工具。经过一些实验,我发现如果我删除 NavigationView,环的行为就像它从一开始就应该的那样。不过,我没有看到出现此问题的明显原因。
import SwiftUI
struct ProgressRing_ContentView: View {
@State var progressToggle = false
@State var progressRingEndingValue: CGFloat = 0.75
var ringColor: Color = Color.green
var ringWidth: CGFloat = 20
var ringSize: CGFloat = 200
var body: some View {
TabView{
NavigationView{
VStack{
Spacer()
ZStack{
Circle()
.trim(from: 0, to: progressToggle ? progressRingEndingValue : 0)
.stroke(ringColor, style: StrokeStyle(lineWidth: ringWidth, lineCap: .round, lineJoin: .round))
.background(Circle().stroke(ringColor, lineWidth: ringWidth).opacity(0.2))
.frame(width: ringSize, height: ringSize)
.rotationEffect(.degrees(-90.0))
.animation(.easeInOut(duration: 1))
.onAppear() …
Run Code Online (Sandbox Code Playgroud)