Files
GetGoing/ProjectClock/AlarmViewController.swift
T
2021-01-17 13:14:19 -05:00

67 lines
1.9 KiB
Swift

import UIKit
class AlarmViewController: UIViewController
{
@IBOutlet weak var table: UITableView!
override func viewDidLoad()
{
super.viewDidLoad()
// Assign table delegate and data source
table.delegate = self
table.dataSource = self
}
}
/**
Alarm table controller
*/
extension AlarmViewController: UITableViewDelegate, UITableViewDataSource
{
/// How many sections are there
func numberOfSections(in: UITableView) -> Int { return 1 }
/// How many rows are there
func tableView(_ v: UITableView, numberOfRowsInSection s: Int) -> Int { return Alarms.fromLocal().list.count }
/// Configure each cell
func tableView(_ v: UITableView, cellForRowAt i: IndexPath) -> UITableViewCell
{
// Get the cell and item at index i
let rawCell = v.dequeueReusableCell(withIdentifier: "alarm", for: i)
guard let cell = rawCell as? AlarmTableCell else { return rawCell }
let item = Alarms.fromLocal().list[i.row]
// Set the content of the cell to the content of the item.
cell.setData(item)
return cell
}
/// Define cell height
func tableView(_ v: UITableView, heightForRowAt i: IndexPath) -> CGFloat { return 120 }
/// IDK what this does (TODO: Find out what this does)
func tableView(_ v: UITableView, didSelectRowAt i: IndexPath) { v.deselectRow(at: i, animated: true) }
}
/**
Table cell that displays the information of each alarm.
*/
class AlarmTableCell: UITableViewCell
{
@IBOutlet weak var time: UILabel!
@IBOutlet weak var ampm: UILabel!
@IBOutlet weak var descriptionText: UILabel!
@IBOutlet weak var enable: UISwitch!
@IBOutlet weak var repeatText: UILabel!
@IBOutlet weak var goingOffText: UILabel!
/// Update information on the cell to information in the alarm object
func setData(_ alarm: Alarm)
{
descriptionText.text = "- " + alarm.text
}
}