AutorÃa | Ultima modificación | Ver Log |
//// PieSliceView.swift// twogetskills//// Created by Efrain Yanez Recanatini on 3/10/22.//import SwiftUI@available(OSX 10.15, *)struct PieSlice: View {var pieSliceData: PieSliceDatavar midRadians: Double {return Double.pi / 2.0 - (pieSliceData.startAngle + pieSliceData.endAngle).radians / 2.0}var body: some View {GeometryReader { geometry inZStack {Path { path inlet width: CGFloat = min(geometry.size.width, geometry.size.height)let height = widthpath.move(to: CGPoint(x: width * 0.5,y: height * 0.5))path.addArc(center: CGPoint(x: width * 0.5, y: height * 0.5), radius: width * 0.5, startAngle: Angle(degrees: -90.0) + pieSliceData.startAngle, endAngle: Angle(degrees: -90.0) + pieSliceData.endAngle, clockwise: false)}.fill(pieSliceData.color)Text(pieSliceData.text).position(x: geometry.size.width * 0.5 * CGFloat(1.0 + 0.78 * cos(self.midRadians)),y: geometry.size.height * 0.5 * CGFloat(1.0 - 0.78 * sin(self.midRadians))).foregroundColor(Color.white)}}.aspectRatio(1, contentMode: .fit)}}@available(OSX 10.15, *)struct PieSliceData {var startAngle: Anglevar endAngle: Anglevar text: Stringvar color: Color}@available(OSX 10.15.0, *)struct PieSlice_Previews: PreviewProvider {static var previews: some View {PieSlice(pieSliceData: PieSliceData(startAngle: Angle(degrees: 0.0), endAngle: Angle(degrees: 120.0), text: "30%", color: Color.black))}}