Sin Descripción

MineViewController.swift 2.8KB

    // // MineViewController.swift // Paiai_iOS // // Created by FFIB on 2018/12/6. // Copyright © 2018 FFIB. All rights reserved. // import UIKit import PaiaiDataKit import PaiaiUIKit import RxSwift protocol MineViewControllerDelegate: class { func didSelect(_ item: MineItem) func logout() } enum MineItem { case group case order case feedback case about } extension MineItem: CaseIterable { static var allClass: [MineItem] { return [.group, .order, .feedback, .about] } } final class MineViewController: SideViewController { @IBOutlet weak var headerImageView: UIImageView! @IBOutlet weak var nickNameLabel: UILabel! @IBOutlet weak var tableView: UITableView! @IBOutlet weak var mineView: UIView! override var animationView: UIView? { return mineView } fileprivate lazy var menuImage: [String] = { return ["mine-group", "mine-order", "mine-feedback", "mine-about"] }() fileprivate lazy var menuTitle: [String] = { return ["我的照片群", "订单记录", "意见反馈", "关于"] }() var userInfoViewModel: UserInfoViewModel! weak var delegate: MineViewControllerDelegate? fileprivate var disposeBag = DisposeBag() override func viewDidLoad() { super.viewDidLoad() bindingUserInfoToView() } @IBAction func loginOutAction(_ sender: UIButton) { delegate?.logout() } } /// binding extension MineViewController { func bindingUserInfoToView() { userInfoViewModel.shareUserInfo.asObservable() .subscribe(onNext: {[unowned self] (info) in self.headerImageView.setImage(info.photoPath, placeholder: UIImage.defaultAvatar) self.nickNameLabel.text = info.userName }).disposed(by: disposeBag) } } extension MineViewController: UITableViewDataSource { func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int { return menuTitle.count } func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell { let cell = tableView.dequeueReusableCell(withIdentifier: "mineCell", for: indexPath) cell.textLabel?.text = menuTitle[indexPath.row] cell.textLabel?.textColor = UIColor(gray: 51) cell.imageView?.image = UIImage(named: menuImage[indexPath.row]) return cell } } extension MineViewController: UITableViewDelegate { func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) { delegate?.didSelect(MineItem.allCases[indexPath.row]) } } extension MineViewController: Storyboarded { static func instantiate() -> MineViewController { return UIStoryboard.mine.instantiateViewController(type: MineViewController.self) } }