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.
94 lines
2.9 KiB
94 lines
2.9 KiB
![]()
2 years ago
|
//
|
||
|
// RepeatTimeViewController.swift
|
||
|
// Lookfit
|
||
|
//
|
||
|
// Created by lemo on 2018/5/11.
|
||
|
// Copyright © 2020年 ecell. All rights reserved.
|
||
|
//
|
||
|
|
||
|
import UIKit
|
||
|
|
||
|
private enum Resuable {
|
||
|
static let tableViewCell = ReusableCell<CommonTableViewCell>(nibName: "CommonTableViewCell")
|
||
|
}
|
||
|
|
||
|
class RepeatTimeViewController: TableViewController {
|
||
|
|
||
|
override func viewDidLoad() {
|
||
|
super.viewDidLoad()
|
||
|
}
|
||
|
|
||
|
override func makeUI() {
|
||
|
super.makeUI()
|
||
|
let rightItem = UIBarButtonItem.baseBarButtonItem(normalImg: "", highImg: nil, title: MultiLanguageKey.save.localized, target: self, action: #selector(clickSave))
|
||
|
navigationItem.rightBarButtonItem = rightItem
|
||
|
tableView.rowHeight = kScaleHeight(50)
|
||
|
tableView.register(Resuable.tableViewCell)
|
||
|
tableView.snp.makeConstraints { (make) in
|
||
|
make.edges.equalToSuperview()
|
||
|
}
|
||
|
}
|
||
|
|
||
|
override func bindViewModel() {
|
||
|
guard let viewModel = viewModel as? RepeatViewModel else { return }
|
||
|
let dataSource = RxTableViewSectionedReloadDataSource<SectionModel<String, TableViewCellModel>>.init(configureCell: { ( ds , tv, indexPath, model) in
|
||
|
let cell: CommonTableViewCell = tv.dequeue(Resuable.tableViewCell, for: indexPath)
|
||
|
cell.bindViewModel(model: model)
|
||
|
cell.selectionStyle = .none
|
||
|
return cell
|
||
|
})
|
||
|
viewModel.dataVariable.asObservable()
|
||
|
.bind(to: tableView.rx.items(dataSource: dataSource))
|
||
|
.disposed(by: rx.disposeBag)
|
||
|
tableView.rx.itemSelected
|
||
|
.subscribe(onNext: { (ind) in
|
||
|
viewModel.updateDataSource(idx: ind.row)
|
||
|
})
|
||
|
.disposed(by: rx.disposeBag)
|
||
|
}
|
||
|
|
||
|
@objc func clickSave() {
|
||
|
guard let viewModel = viewModel as? RepeatViewModel else { return }
|
||
|
viewModel.updateCycle.onNext(viewModel.cycleStr)
|
||
|
navigator.pop(sender: self)
|
||
|
}
|
||
|
|
||
|
}
|
||
|
|
||
|
extension RepeatTimeViewController {
|
||
|
|
||
|
/// 所选星期的状态转为字符串
|
||
|
///
|
||
|
/// - Parameter status: 状态值
|
||
|
/// - Returns: 字符串
|
||
|
func selectedWeekdays(status: Int) -> String {
|
||
|
let weekdays = ["周一", "周二", "周三", "周四", "周五", "周六", "周日"]
|
||
|
var i = 0
|
||
|
var result = ""
|
||
|
for weekday in weekdays {
|
||
|
let res = status & ( 1 << i ) == 0
|
||
|
if !res {
|
||
|
result.append(weekday)
|
||
|
result.append(" ")
|
||
|
}
|
||
|
i += 1
|
||
|
}
|
||
|
return result
|
||
|
}
|
||
|
|
||
|
func weekdaysToStatus(weekStr: String) -> Int {
|
||
|
let weekdays = ["周一", "周二", "周三", "周四", "周五", "周六", "周日"]
|
||
|
var status = 0
|
||
|
var i = 0
|
||
|
for weekday in weekdays {
|
||
|
if weekStr.contains(weekday) {
|
||
|
status = status | ( 1 << i )
|
||
|
}else {
|
||
|
status = status | ( 0 << i )
|
||
|
}
|
||
|
i += 1
|
||
|
}
|
||
|
return status
|
||
|
}
|
||
|
}
|