An amazing project that generates micro reports from tournament results
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.

62 lines
1.7 KiB

//
// TableView.swift
// TournamentStats
//
// Created by Laurent Morvillier on 06/08/2019.
// Copyright © 2019 Stax River. All rights reserved.
//
import Foundation
import UIKit
class TableView : UITableView {
fileprivate var reference: AnyObject?
func setData<T : ColumnRepresentable>(data: [T], maxRows: Int? = 10) {
let wrapper = DataSourceWrapper(array: data, maxRows: maxRows)
self.dataSource = wrapper
self.delegate = wrapper
self.reference = wrapper
}
private func label(height: CGFloat, text: String) -> UILabel {
let label = UILabel(frame: CGRect(x: 0, y: 0, width: self.frame.width, height: height))
label.text = text
label.textColor = UIColor.white
label.backgroundColor = UIColor.clear
label.textAlignment = .center
return label
}
func setHeader(header: String) {
let label = self.label(height: 60.0, text: header)
label.font = Fonts.subTitle
self.tableHeaderView = label
}
func setFooter(footer: String) {
let label = self.label(height: 22.0, text: footer)
self.tableFooterView = label
}
override init(frame: CGRect, style: UITableView.Style) {
super.init(frame: frame, style: style)
self._initialize()
}
required init?(coder aDecoder: NSCoder) {
super.init(coder: aDecoder)
self._initialize()
}
fileprivate func _initialize() {
self.register(UINib(nibName: "StackTableCell", bundle: Bundle.main), forCellReuseIdentifier: "Cell")
self.backgroundColor = UIColor.clear
}
}