fun c внутри запроса извлечения ForEach не работает - PullRequest
0 голосов
/ 29 февраля 2020

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)
                }
            }
        }
    }
}

}

...