Tusker/Tusker/Views/Tab/TabTableViewCell.swift

48 lines
1.2 KiB
Swift

//
// TabTableViewCell.swift
// Tusker
//
// Created by Shadowfacts on 10/5/18.
// Copyright © 2018 Shadowfacts. All rights reserved.
//
import UIKit
protocol TabTableViewCellDelegate {
func setEnabled(tab: Tab, enabled: Bool)
}
class TabTableViewCell: UITableViewCell {
var delegate: TabTableViewCellDelegate?
@IBOutlet weak var nameLabel: UILabel!
@IBOutlet weak var enabledSwitch: UISwitch!
var tab: Tab!
override func awakeFromNib() {
super.awakeFromNib()
// compensate for inset created by table view editing mode even when no delete control shown
nameLabel.leadingAnchor.constraint(equalTo: contentView.leadingAnchor, constant: -20).isActive = true
}
override func setSelected(_ selected: Bool, animated: Bool) {
super.setSelected(selected, animated: animated)
}
func updateUI(for tab: Tab) {
self.tab = tab
enabledSwitch.isEnabled = tab != .preferences
enabledSwitch.setOn(Preferences.shared.tabIndex(tab) >= 0, animated: false)
nameLabel.text = tab.humanName
}
@IBAction func enabledSwitchChanged(_ sender: Any) {
delegate?.setEnabled(tab: tab, enabled: enabledSwitch.isOn)
}
}