// // 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(nibName: "CommonTableViewCell") } class TargetVC: TableViewController { let rxDataSource = RxTableViewSectionedReloadDataSource >(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) } }