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.
145 lines
5.1 KiB
145 lines
5.1 KiB
// |
|
// TargetVC.swift |
|
// FireBoltt |
|
// |
|
// Created by lemo. on 2019/7/30. |
|
// Copyright © 2019 lemo. All rights reserved. |
|
// |
|
|
|
import UIKit |
|
|
|
// MARK:- 复用 |
|
fileprivate enum Resuable { |
|
static let tableViewCell = ReusableCell<CommonTableViewCell>(nibName: "CommonTableViewCell") |
|
} |
|
|
|
class TargetVC: TableViewController { |
|
|
|
let rxDataSource = RxTableViewSectionedReloadDataSource |
|
<SectionModel<String, TableViewCellModel>>(configureCell: { |
|
(dataSource, tv, indexPath, element) in |
|
let cell = tv.dequeue(Resuable.tableViewCell, for: indexPath) |
|
cell.bindViewModel(model: element) |
|
return cell |
|
}) |
|
|
|
private var selectIndexPath: IndexPath = IndexPath(row: 0, section: 0) |
|
|
|
lazy var pickerView: PickerView = { |
|
let pickerView = PickerView() |
|
pickerView.currenValues = { [weak self] (value) in |
|
guard let `self` = self else { return } |
|
guard var userInfo = UserDefaultsManagerFrieBoltt.getUserInfo() else { return } |
|
// 睡眠目标 |
|
if self.selectIndexPath.section == 0 && self.selectIndexPath.row == 1 { |
|
userInfo.sleepTarget = value |
|
}else { |
|
// 其他步数目标 |
|
var sportMode = 0 |
|
if self.selectIndexPath.section == 0 { |
|
userInfo.stepTarget = value |
|
sportMode = 0 |
|
}else { |
|
switch self.selectIndexPath.row { |
|
case 0: |
|
userInfo.walkTarget = value |
|
case 1: |
|
userInfo.runTarget = value |
|
case 2: |
|
userInfo.cyclingTarget = value |
|
case 3: |
|
userInfo.climbTarget = value |
|
default: |
|
break |
|
} |
|
sportMode = self.selectIndexPath.row + 1 |
|
} |
|
// 步数目标发送设置指令 |
|
if BluetoothFireBoltt.shareInstance()!.isConnected { |
|
BluetoothService.shared.setSportTarget(step: value, sportMode: sportMode) |
|
} |
|
} |
|
guard let viewModel = self.viewModel as? TargetVM else { return } |
|
// 刷新页面 |
|
UserDefaultsManagerFrieBoltt.saveUserInfo(userInfo: userInfo) |
|
viewModel.loadFuncationList() |
|
} |
|
return pickerView |
|
}() |
|
|
|
override func viewDidLoad() { |
|
super.viewDidLoad() |
|
} |
|
|
|
override func makeUI() { |
|
super.makeUI() |
|
// tableView |
|
if #available(iOS 13.0, *) { |
|
tableViewStyle = .insetGrouped |
|
} else { |
|
// Fallback on earlier versions |
|
// tableViewStyle = .grouped |
|
} |
|
tableView.register(Resuable.tableViewCell) |
|
tableView.rx.setDelegate(self).disposed(by: rx.disposeBag) |
|
tableView.backgroundColor = kHexColor(0xFAFAFA) |
|
tableView.snp.makeConstraints { (make) in |
|
make.edges.equalToSuperview() |
|
} |
|
tableView.rx.itemSelected |
|
.subscribe(onNext: { [weak self] indexPath in |
|
guard let `self` = self else { return } |
|
guard let userInfo = UserDefaultsManagerFrieBoltt.getUserInfo() else { return } |
|
self.selectIndexPath = indexPath |
|
var pickerType: PikcerType = indexPath.section == 0 && indexPath.row == 0 ? .step1 : .step |
|
var pickerValue = 0 |
|
// 睡眠目标 |
|
if indexPath.section == 0 && indexPath.row == 1 { |
|
pickerValue = userInfo.sleepTarget |
|
pickerType = .duration |
|
} |
|
else |
|
{ |
|
// 其他步数目标 |
|
if indexPath.section == 0 |
|
{ |
|
pickerValue = userInfo.stepTarget |
|
} |
|
else |
|
{ |
|
switch indexPath.row |
|
{ |
|
case 0: |
|
pickerValue = userInfo.walkTarget |
|
case 1: |
|
pickerValue = userInfo.runTarget |
|
case 2: |
|
pickerValue = userInfo.cyclingTarget |
|
case 3: |
|
pickerValue = userInfo.climbTarget |
|
default: |
|
break |
|
} |
|
} |
|
} |
|
self.pickerView.show(values: pickerValue, type: pickerType, view: self.view) |
|
}) |
|
.disposed(by: rx.disposeBag) |
|
} |
|
|
|
override func bindViewModel() { |
|
guard let viewModel = viewModel as? TargetVM else { return } |
|
viewModel.relay.asObservable() |
|
.bind(to: tableView.rx.items(dataSource: rxDataSource)) |
|
.disposed(by: rx.disposeBag) |
|
} |
|
|
|
} |
|
|
|
extension TargetVC: UITableViewDelegate { |
|
|
|
func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) { |
|
tableView.deselectRow(at: indexPath, animated: true) |
|
} |
|
|
|
}
|
|
|