1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283 |
- /*****************************************************************************
- * ActionSheetSortSectionHeader.swift
- *
- * Copyright © 2019 VLC authors and VideoLAN
- *
- * Authors: Soomin Lee <bubu@mikan.io>
- *
- * Refer to the COPYING file of the official project for license.
- *****************************************************************************/
- protocol ActionSheetSortSectionHeaderDelegate: class {
- func actionSheetSortSectionHeader(_ header: ActionSheetSortSectionHeader,
- onSwitchIsOnChange: Bool)
- }
- class ActionSheetSortSectionHeader: ActionSheetSectionHeader {
- override var cellHeight: CGFloat {
- return 100
- }
- let descendingStackView: UIStackView = {
- let descendingStackView = UIStackView()
- descendingStackView.spacing = 0
- descendingStackView.alignment = .center
- descendingStackView.translatesAutoresizingMaskIntoConstraints = false
- return descendingStackView
- }()
- let descendingLabel: UILabel = {
- let descendingLabel = UILabel()
- descendingLabel.textColor = PresentationTheme.current.colors.cellTextColor
- descendingLabel.text = NSLocalizedString("DESCENDING_LABEL", comment: "")
- descendingLabel.font = UIFont.systemFont(ofSize: 15, weight: .medium)
- descendingLabel.translatesAutoresizingMaskIntoConstraints = false
- return descendingLabel
- }()
- let actionSwitch: UISwitch = {
- let actionSwitch = UISwitch()
- actionSwitch.addTarget(self, action: #selector(handleSwitch(_:)), for: .valueChanged)
- actionSwitch.accessibilityLabel = NSLocalizedString("DESCENDING_SWITCH_LABEL", comment: "")
- actionSwitch.accessibilityHint = NSLocalizedString("DESCENDING_SWITCH_HINT", comment: "")
- actionSwitch.translatesAutoresizingMaskIntoConstraints = false
- return actionSwitch
- }()
- weak var delegate: ActionSheetSortSectionHeaderDelegate?
- override init(frame: CGRect) {
- super.init(frame: frame)
- translatesAutoresizingMaskIntoConstraints = false
- setupStackView()
- updateTheme()
- NotificationCenter.default.addObserver(self, selector: #selector(updateTheme),
- name: .VLCThemeDidChangeNotification, object: nil)
- }
- required init?(coder aDecoder: NSCoder) {
- fatalError("init(coder:) has not been implemented")
- }
- @objc private func updateTheme() {
- backgroundColor = PresentationTheme.current.colors.background
- descendingLabel.textColor = PresentationTheme.current.colors.cellTextColor
- }
- @objc func handleSwitch(_ sender: UISwitch) {
- delegate?.actionSheetSortSectionHeader(self, onSwitchIsOnChange: sender.isOn)
- }
- private func setupStackView() {
- descendingStackView.addArrangedSubview(descendingLabel)
- descendingStackView.addArrangedSubview(actionSwitch)
- addSubview(descendingStackView)
- NSLayoutConstraint.activate([
- descendingStackView.leadingAnchor.constraint(equalTo: guide.leadingAnchor, constant: 20),
- descendingStackView.trailingAnchor.constraint(equalTo: trailingAnchor, constant: -20),
- descendingStackView.topAnchor.constraint(equalTo: title.bottomAnchor, constant: 15),
- ])
- }
- }
|