//
|
// WorldCupListRankView.swift
|
// WanPai
|
//
|
// Created by Robert on 2025/8/17.
|
//
|
|
import UIKit
|
import JQTools
|
import RxSwift
|
class WorldCupListRankView: UIView,JQNibView, UITableViewDelegate, UITableViewDataSource {
|
func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
|
return dataSoure?.count ?? 0
|
|
}
|
|
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
|
let cell = tabview.dequeueReusableCell(withIdentifier: "WorldCupListRankViewCellId", for: indexPath) as! WorldCupListRankViewCell
|
cell.chooseBtn.isSelected = indexPath.row == selectIndex ? true : false
|
cell.index = indexPath.row
|
cell.selectionStyle = .none
|
cell.tag = indexPath.row
|
cell.titleLab.text = dataSoure?[indexPath.row].name ?? ""
|
// RxSwift绑定
|
cell.chooseBtn.rx.tap
|
.map { cell.tag } // 从cell的tag获取行索引
|
.subscribe(onNext: { [weak self] row in
|
self?.selectIndex = row
|
self?.selectIndex = row
|
self?.tabview.reloadData()
|
})
|
.disposed(by: disposeBag)
|
return cell
|
}
|
|
|
@IBOutlet weak var tabBackView: UIView!
|
|
@IBOutlet weak var sureAction: UIButton!
|
|
private var clouse:((Int)->Void)!
|
|
@IBOutlet weak var tabview: UITableView!
|
|
var dataSoure: Array<GetWorldCupListFromRank>?
|
|
var disposeBag = DisposeBag()
|
|
var selectIndex = 0
|
|
|
override func awakeFromNib() {
|
super.awakeFromNib()
|
alpha = 0
|
tabview.delegate = self
|
tabview.dataSource = self
|
tabview.separatorStyle = .none
|
tabview.rowHeight = 44
|
// tabview.register(WorldCupListRankViewCell.self, forCellReuseIdentifier: "WorldCupListRankViewCellId")
|
tabview.register(UINib(nibName: "WorldCupListRankViewCell", bundle: nil), forCellReuseIdentifier: "WorldCupListRankViewCellId")
|
sureAction.layer.masksToBounds = true
|
sureAction.layer.cornerRadius = 5
|
|
}
|
static func show(arr:[GetWorldCupListFromRank]?, clouse:@escaping (Int) -> Void){
|
|
let alertView = WorldCupListRankView.jq_loadNibView()
|
alertView.clouse = clouse
|
alertView.frame = sceneDelegate?.window?.frame ?? .zero
|
sceneDelegate?.window?.addSubview(alertView)
|
UIView.animate(withDuration: 0.4) {
|
alertView.layoutIfNeeded()
|
alertView.alpha = 1
|
} completion: { _ in
|
|
}
|
alertView.dataSoure = arr
|
alertView.tabview.reloadData()
|
}
|
|
@IBAction func sureAction(_ sender: Any) {
|
if dataSoure?.count == 0 {
|
return
|
}
|
self.clouse(Int(dataSoure?[self.selectIndex].id ?? "0") ?? 0)
|
}
|
|
}
|