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.
35 lines
1.3 KiB
35 lines
1.3 KiB
// |
|
// SportCellViewModels.swift |
|
// Lookfit |
|
// |
|
// Created by lemo. on 2020/4/19. |
|
// Copyright © 2020 Sheldon. All rights reserved. |
|
// |
|
|
|
import UIKit |
|
|
|
class SportCellViewModels: ViewModel { |
|
|
|
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)) |
|
} |
|
|
|
}
|
|
|