import SwiftUI
struct DashboardAcftView: представление {
Здесь хранятся свойства состояния и сохраняются в постоянном контейнере.
@ObservedObject public var updateMaleBodyCompView = UpdateMaleBodyCompView()
Это запрос на выборку.
@FetchRequest(entity: MaleBodyComp.entity(), sortDescriptors: [NSSortDescriptor(keyPath: \MaleBodyComp.createdAt, ascending: false)]) var maleBodyComp: FetchedResults<MaleBodyComp>
Это забавный c, который берет авторизованный BF Double и телесный жир Double и возвращает Color.
func colorCategory(bf: Double, authBf: Double) -> Color {
let goColor: Color = Color.green
let noGoColor: Color = Color.red
let bf = updateMaleBodyCompView.bodyFat
let authBf = updateMaleBodyCompView.authBodyFat
if Int(authBf) < Int(bf) {
return noGoColor
}
return goColor
}
var body: some View {
Text("ABCP Snapshot").font(.headline)
ScrollView(.horizontal, showsIndicators: false) {
HStack(alignment: .bottom, spacing: CGFloat(0)) {
ForEach(self.maleBodyComp, id: \.self) { bf in
Здесь обновляется и анимируется вид кольца. Он только обновляет периметр возврата вне оператора if. Так что в этом случае Color.green.
RingViewAbcp(precent: 23, radius: 22, **color: self.colorCategory(bf: bf.bodyFat, authBf: bf.authBodyFat)** , width: 7, ringAuthBodyFat: Int(bf.authBodyFat), ringBodyFat: Int(bf.bodyFat), recordDate: bf.createdAt ?? Date(), recordLabel: "ABCP Date", animationDuration: 1.5)
}
}
}
}
}
}