Bark/View/GroupTableViewCell.swift
Fin 1b60f93a45
同步 NotificationService realm schemaVersion.
修改 group cell 点击区域
2021-06-09 17:39:34 +08:00

80 lines
2.6 KiB
Swift

//
// GroupTableViewCell.swift
// Bark
//
// Created by huangfeng on 2021/6/8.
// Copyright © 2021 Fin. All rights reserved.
//
import UIKit
import Material
class GroupTableViewCell: BaseTableViewCell {
let nameLabel:UILabel = {
let label = UILabel()
label.fontSize = 14
label.textColor = Color.darkText.primary
return label
}()
let checkButton: BKButton = {
let btn = BKButton()
btn.setImage(UIImage(named: "baseline_radio_button_unchecked_black_24pt"), for: .normal)
btn.setImage(UIImage(named: "baseline_check_circle_outline_black_24pt"), for: .selected)
btn.tintColor = Color.lightGray
btn.isUserInteractionEnabled = false
return btn
}()
override init(style: UITableViewCell.CellStyle, reuseIdentifier: String?) {
super.init(style: style, reuseIdentifier: reuseIdentifier)
self.selectionStyle = .none
self.contentView.addSubview(nameLabel)
self.contentView.addSubview(checkButton)
checkButton.snp.makeConstraints { make in
make.width.height.equalTo(24)
make.left.equalToSuperview().offset(15)
make.centerY.equalToSuperview()
}
nameLabel.snp.makeConstraints { (make) in
make.left.equalTo(checkButton.snp.right).offset(15)
make.top.equalToSuperview().offset(15)
make.bottom.equalToSuperview().offset(-15)
}
let tap = UITapGestureRecognizer()
self.contentView.addGestureRecognizer(tap)
tap.rx.event.subscribe(onNext: {[weak self] _ in
(self?.viewModel as? GroupCellViewModel)?.checked.accept(!self!.checkButton.isSelected)
}).disposed(by: rx.disposeBag)
}
required init?(coder aDecoder: NSCoder) {
fatalError("init(coder:) has not been implemented")
}
override func bindViewModel(model:ViewModel){
super.bindViewModel(model: model)
guard let viewModel = model as? GroupCellViewModel else {
return
}
viewModel.name
.map({ name in
return name ?? NSLocalizedString("default")
})
.bind(to: nameLabel.rx.text)
.disposed(by: rx.reuseBag)
viewModel.checked
.bind(to: self.checkButton.rx.isSelected)
.disposed(by: rx.reuseBag)
viewModel.checked.subscribe(
onNext: {[weak self] checked in
self?.checkButton.tintColor = checked ? Color.lightBlue.darken3 : Color.lightGray
}).disposed(by: rx.reuseBag)
}
}