I am trying to display a UITableView and its cells in a UIViewController but I am not seeing the UITableView appear in the UIViewController. My AutoLayout constraints have the table set to appear underneath the "My Trips" UILabel. I've added the delegate and data source, not sure what I'm missing here.
class TripsViewController: UIViewController, UITableViewDelegate, UITableViewDataSource {
//components
let viewTitle = UILabel()
let tripsTableView = UITableView()
override func viewDidLoad() {
super.viewDidLoad()
setup()
style()
layout()
}
}
extension TripsViewController {
func setup(){
tripsTableView.delegate = self
tripsTableView.dataSource = self
}
func style() {
view.backgroundColor = .systemBackground
viewTitle.translatesAutoresizingMaskIntoConstraints = false
viewTitle.text = "My Trips"
viewTitle.font = UIFont.preferredFont(forTextStyle: .title1)
tripsTableView.translatesAutoresizingMaskIntoConstraints = false
}
func layout() {
view.addSubview(viewTitle)
view.addSubview(tripsTableView)
NSLayoutConstraint.activate([
viewTitle.leadingAnchor.constraint(equalToSystemSpacingAfter: view.safeAreaLayoutGuide.leadingAnchor, multiplier: 2),
viewTitle.topAnchor.constraint(equalToSystemSpacingBelow: view.safeAreaLayoutGuide.topAnchor, multiplier: 2),
tripsTableView.leadingAnchor.constraint(equalToSystemSpacingAfter: view.safeAreaLayoutGuide.leadingAnchor, multiplier: 2),
tripsTableView.topAnchor.constraint(equalToSystemSpacingBelow: viewTitle.bottomAnchor, multiplier: 2)
])
}
func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
return 5
}
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let cell = UITableViewCell()
cell.textLabel?.text = "This is row \(indexPath.row)"
return cell
}
}
