Я пытался создать анимацию круговой диаграммы с помощью Swift, я пытался создать анимацию макета (когда пользователь переходит на страницу, круговая диаграмма будет анимироваться, начиная с позиции 12 часов и двигаясь по часовой стрелке до завершения). Но когда я пытаюсь использовать новое ключевое слово «отметка сектора», оно связывает легенду круговой диаграммы с круговой диаграммой. Как только начнется анимация круговой диаграммы, легенда также начнет вращаться. Мне интересно, есть ли способ оставить легенду круговой диаграммы неизменной. Вот полный код проблемы, который у меня есть на данный момент: ИЗОБРАЖЕНИЕ
Я пытался создать анимацию круговой диаграммы с помощью Swift, я пытался создать анимацию макета (когда пользователь переходит на страницу, круговая диаграмма будет анимироваться, начиная с позиции 12 часов и двигаясь по часовой стрелке до завершения). Но когда я пытаюсь использовать новое ключевое слово «отметка сектора», оно связывает легенду круговой диаграммы с круговой диаграммой. Как только начнется анимация круговой диаграммы, легенда также начнет вращаться. Мне интересно, есть ли способ оставить легенду круговой диаграммы неизменной. Вот полный код проблемы, который у меня есть на данный момент: ИЗОБРАЖЕНИЕ [code]import SwiftUI import Charts
struct Product: Identifiable { let id = UUID() let title: String let revenue: Double }
struct FirstView: View { @State private var animateChart: Bool = false @State private var products: [Product] = [ .init(title: "Annual", revenue: 0.1), .init(title: "Monthly", revenue: 0.2), .init(title: "Lifetime", revenue: 0.7) ] @State private var selectedProduct: Product? @State private var isDetailLocked: Bool = false @State private var touchLocation: CGPoint?
var body: some View { VStack { // Refresh button Button(action: { // Reset the animation withAnimation(.easeInOut(duration: 0.5)) { animateChart = false } // Trigger the animation after a slight delay for reset effect DispatchQueue.main.asyncAfter(deadline: .now() + 0.5) { withAnimation(.easeInOut(duration: 1.5)) { animateChart = true } } }) { Text("Refresh Chart") .padding() .background(Color.blue) .foregroundColor(.white) .cornerRadius(10) } .padding()