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.
 
 
 

93 lines
2.9 KiB

//
// 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
}
}