You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
36 lines
1.3 KiB
36 lines
1.3 KiB
![]()
2 years ago
|
//
|
||
![]()
2 years ago
|
// SportCellViewModels.swift
|
||
![]()
2 years ago
|
// Lookfit
|
||
|
//
|
||
|
// Created by lemo. on 2020/4/19.
|
||
|
// Copyright © 2020 Sheldon. All rights reserved.
|
||
|
//
|
||
|
|
||
|
import UIKit
|
||
|
|
||
![]()
2 years ago
|
class SportCellViewModels: ViewModel {
|
||
![]()
2 years ago
|
|
||
|
var sportModel: SportModel = SportModel()
|
||
|
let img = BehaviorRelay<UIImage?>(value: nil)
|
||
|
let sportName = BehaviorRelay<String?>(value: nil)
|
||
|
let timeStr = BehaviorRelay<String?>(value: nil)
|
||
|
let duration = BehaviorRelay<String?>(value: nil)
|
||
|
let distanceUnit = BehaviorRelay<String?>(value: nil)
|
||
|
let distance = BehaviorRelay<String?>(value: nil)
|
||
|
let calories = BehaviorRelay<String?>(value: nil)
|
||
|
|
||
|
init(sportModel: SportModel) {
|
||
|
self.sportModel = sportModel
|
||
|
sportName.accept(sportModel.getSportType.sportTypeName)
|
||
|
img.accept(sportModel.getSportType.sportImg)
|
||
|
timeStr.accept(sportModel.dataDate)
|
||
|
duration.accept(sportModel.durationStr)
|
||
|
let metric = UserDefaultsManager.getUserInfo()?.metricUnit ?? 0
|
||
|
let distanceStr = metric == 0 ? String(format: "%0.2lf",CGFloat(sportModel.distance) / 1000.0) : String(format: "%0.2lf", CGFloat(sportModel.distance) / 1000.0 * 0.62137)
|
||
|
distance.accept(distanceStr)
|
||
|
distanceUnit.accept(metric == 0 ? "km" : "miles")
|
||
|
calories.accept(String(sportModel.calorie))
|
||
|
}
|
||
|
|
||
|
}
|