mirror of
https://github.com/SoPat712/YTLitePlus.git
synced 2025-11-01 05:13:39 -04:00
added files via upload
This commit is contained in:
321
Tweaks/Alderis/Demo/Alderis Demo/FirstViewController.swift
Normal file
321
Tweaks/Alderis/Demo/Alderis Demo/FirstViewController.swift
Normal file
@@ -0,0 +1,321 @@
|
||||
//
|
||||
// FirstViewController.swift
|
||||
// Alderis Demo
|
||||
//
|
||||
// Created by Adam Demasi on 15/4/20.
|
||||
// Copyright © 2020 HASHBANG Productions. All rights reserved.
|
||||
//
|
||||
|
||||
import UIKit
|
||||
import Alderis
|
||||
|
||||
class FirstViewController: UIViewController {
|
||||
|
||||
private var color = UIColor(hue: 0.939614, saturation: 0.811765, brightness: 0.333333, alpha: 1)
|
||||
|
||||
private var colorWell: ColorWell!
|
||||
private var uikitWell: UIView?
|
||||
|
||||
// swiftlint:disable:next function_body_length
|
||||
override func viewDidLoad() {
|
||||
super.viewDidLoad()
|
||||
|
||||
title = "Alderis Demo"
|
||||
if #available(iOS 13, *) {
|
||||
view.backgroundColor = .systemBackground
|
||||
} else {
|
||||
view.backgroundColor = .white
|
||||
}
|
||||
|
||||
#if targetEnvironment(macCatalyst)
|
||||
navigationController?.isNavigationBarHidden = true
|
||||
#endif
|
||||
|
||||
let stackView = UIStackView()
|
||||
stackView.translatesAutoresizingMaskIntoConstraints = false
|
||||
stackView.axis = .vertical
|
||||
stackView.alignment = .center
|
||||
stackView.spacing = 10
|
||||
view.addSubview(stackView)
|
||||
|
||||
let mainButton = UIButton(type: .system)
|
||||
if #available(iOS 15, *) {
|
||||
var config = UIButton.Configuration.filled()
|
||||
config.buttonSize = .large
|
||||
mainButton.configuration = config
|
||||
} else {
|
||||
mainButton.titleLabel!.font = UIFont.systemFont(ofSize: 34, weight: .semibold)
|
||||
}
|
||||
mainButton.setTitle("Present", for: .normal)
|
||||
mainButton.addTarget(self, action: #selector(self.presentColorPicker), for: .touchUpInside)
|
||||
stackView.addArrangedSubview(mainButton)
|
||||
|
||||
// swiftlint:disable comma
|
||||
let buttons: [(title: String, action: Selector)] = [
|
||||
("Present with customised title", #selector(presentColorPickerCustomisedTitle)),
|
||||
("Present with customised initial tab", #selector(presentColorPickerCustomisedInitialTab)),
|
||||
("Present with customised tabs", #selector(presentColorPickerCustomisedTabs)),
|
||||
("Present with tabs hidden", #selector(presentColorPickerNoTabs)),
|
||||
("Present with customised title, tabs hidden", #selector(presentColorPickerCustomisedTitleNoTabs)),
|
||||
("Present without alpha", #selector(presentColorPickerNoAlpha)),
|
||||
("Present without overriding Smart Invert", #selector(presentColorPickerNoOverrideSmartInvert)),
|
||||
("Present using deprecated API", #selector(presentColorPickerDeprecatedAPI)),
|
||||
("Present UIKit Color Picker", #selector(presentUIKitColorPicker))
|
||||
]
|
||||
// swiftlint:enable comma
|
||||
|
||||
for item in buttons {
|
||||
let button = UIButton(type: .system)
|
||||
if #available(iOS 15, *) {
|
||||
var config = UIButton.Configuration.plain()
|
||||
config.buttonSize = .mini
|
||||
config.macIdiomStyle = .borderlessTinted
|
||||
button.configuration = config
|
||||
}
|
||||
button.setTitle(item.title, for: .normal)
|
||||
button.addTarget(self, action: item.action, for: .touchUpInside)
|
||||
stackView.addArrangedSubview(button)
|
||||
}
|
||||
|
||||
let spacerView = UIView()
|
||||
stackView.addArrangedSubview(spacerView)
|
||||
|
||||
let wellsLabel = UILabel()
|
||||
wellsLabel.font = UIFont.preferredFont(forTextStyle: .headline)
|
||||
wellsLabel.textAlignment = .center
|
||||
wellsLabel.text = "Color wells (try out drag and drop!)"
|
||||
stackView.addArrangedSubview(wellsLabel)
|
||||
|
||||
colorWell = ColorWell()
|
||||
colorWell.isDragInteractionEnabled = true
|
||||
colorWell.isDropInteractionEnabled = true
|
||||
colorWell.addTarget(self, action: #selector(self.colorWellValueChanged(_:)), for: .valueChanged)
|
||||
colorWell.addTarget(self, action: #selector(self.presentColorPicker), for: .touchUpInside)
|
||||
|
||||
let dragOrDropColorWell = ColorWell()
|
||||
dragOrDropColorWell.isDragInteractionEnabled = true
|
||||
dragOrDropColorWell.isDropInteractionEnabled = true
|
||||
dragOrDropColorWell.color = .systemPurple
|
||||
|
||||
let nonDraggableWell = ColorWell()
|
||||
nonDraggableWell.isDragInteractionEnabled = false
|
||||
nonDraggableWell.isDropInteractionEnabled = true
|
||||
nonDraggableWell.color = .systemOrange
|
||||
|
||||
let nonDroppableWell = ColorWell()
|
||||
nonDroppableWell.isDragInteractionEnabled = true
|
||||
nonDroppableWell.isDropInteractionEnabled = false
|
||||
nonDroppableWell.color = .systemTeal
|
||||
|
||||
let nonDragOrDropWell = ColorWell()
|
||||
nonDragOrDropWell.isDragInteractionEnabled = false
|
||||
nonDragOrDropWell.isDropInteractionEnabled = false
|
||||
nonDragOrDropWell.color = .systemGreen
|
||||
|
||||
let wellsStackView = UIStackView(arrangedSubviews: [colorWell,
|
||||
dragOrDropColorWell,
|
||||
nonDraggableWell,
|
||||
nonDroppableWell,
|
||||
nonDragOrDropWell])
|
||||
wellsStackView.translatesAutoresizingMaskIntoConstraints = false
|
||||
wellsStackView.axis = .horizontal
|
||||
wellsStackView.alignment = .center
|
||||
wellsStackView.spacing = 10
|
||||
|
||||
if #available(iOS 14, *) {
|
||||
let uikitWell = UIColorWell()
|
||||
uikitWell.addTarget(self, action: #selector(self.uikitColorWellValueChanged(_:)), for: .valueChanged)
|
||||
wellsStackView.addArrangedSubview(uikitWell)
|
||||
self.uikitWell = uikitWell
|
||||
}
|
||||
|
||||
stackView.addArrangedSubview(wellsStackView)
|
||||
|
||||
NSLayoutConstraint.activate([
|
||||
stackView.leadingAnchor.constraint(equalTo: view.leadingAnchor, constant: 15),
|
||||
stackView.trailingAnchor.constraint(equalTo: view.trailingAnchor, constant: -15),
|
||||
stackView.centerYAnchor.constraint(equalTo: view.centerYAnchor),
|
||||
|
||||
spacerView.heightAnchor.constraint(equalToConstant: 0)
|
||||
])
|
||||
|
||||
var isMac = false
|
||||
if #available(iOS 14, *) {
|
||||
isMac = UIDevice.current.userInterfaceIdiom == .mac
|
||||
}
|
||||
|
||||
NSLayoutConstraint.activate(wellsStackView.arrangedSubviews.flatMap { view in
|
||||
[
|
||||
view.widthAnchor.constraint(equalToConstant: isMac ? 24 : 32),
|
||||
view.heightAnchor.constraint(equalTo: view.widthAnchor)
|
||||
]
|
||||
})
|
||||
}
|
||||
|
||||
override func viewDidAppear(_ animated: Bool) {
|
||||
super.viewDidAppear(animated)
|
||||
|
||||
view.window!.tintColor = color
|
||||
colorWell.color = color
|
||||
if #available(iOS 14, *),
|
||||
let uikitWell = uikitWell as? UIColorWell {
|
||||
uikitWell.selectedColor = color
|
||||
}
|
||||
}
|
||||
|
||||
@objc func colorWellValueChanged(_ sender: ColorWell) {
|
||||
NSLog("Color well value changed with value %@", String(describing: sender.color))
|
||||
view.window!.tintColor = sender.color
|
||||
if #available(iOS 14, *),
|
||||
let uikitWell = uikitWell as? UIColorWell {
|
||||
uikitWell.selectedColor = sender.color
|
||||
}
|
||||
}
|
||||
|
||||
@available(iOS 14, *)
|
||||
@objc func uikitColorWellValueChanged(_ sender: UIColorWell) {
|
||||
NSLog("UIKit color well value changed with value %@", String(describing: sender.selectedColor))
|
||||
view.window!.tintColor = sender.selectedColor
|
||||
colorWell.color = sender.selectedColor
|
||||
}
|
||||
|
||||
@objc func presentColorPicker(_ sender: UIView) {
|
||||
let configuration = ColorPickerConfiguration(color: color)
|
||||
let colorPickerViewController = ColorPickerViewController(configuration: configuration)
|
||||
colorPickerViewController.delegate = self
|
||||
colorPickerViewController.popoverPresentationController?.sourceView = sender
|
||||
tabBarController!.present(colorPickerViewController, animated: true)
|
||||
}
|
||||
|
||||
@objc func presentColorPickerCustomisedTitle(_ sender: UIView) {
|
||||
let configuration = ColorPickerConfiguration(color: color)
|
||||
configuration.title = "Select an Awesome Color"
|
||||
|
||||
let colorPickerViewController = ColorPickerViewController(configuration: configuration)
|
||||
colorPickerViewController.delegate = self
|
||||
colorPickerViewController.popoverPresentationController?.sourceView = sender
|
||||
tabBarController!.present(colorPickerViewController, animated: true)
|
||||
}
|
||||
|
||||
@objc func presentColorPickerCustomisedInitialTab(_ sender: UIView) {
|
||||
let configuration = ColorPickerConfiguration(color: color)
|
||||
configuration.initialTab = .map
|
||||
|
||||
let colorPickerViewController = ColorPickerViewController(configuration: configuration)
|
||||
colorPickerViewController.delegate = self
|
||||
colorPickerViewController.popoverPresentationController?.sourceView = sender
|
||||
tabBarController!.present(colorPickerViewController, animated: true)
|
||||
}
|
||||
|
||||
@objc func presentColorPickerCustomisedTabs(_ sender: UIView) {
|
||||
let configuration = ColorPickerConfiguration(color: color)
|
||||
configuration.visibleTabs = [.map, .sliders]
|
||||
configuration.initialTab = .sliders
|
||||
|
||||
let colorPickerViewController = ColorPickerViewController(configuration: configuration)
|
||||
colorPickerViewController.delegate = self
|
||||
colorPickerViewController.popoverPresentationController?.sourceView = sender
|
||||
tabBarController!.present(colorPickerViewController, animated: true)
|
||||
}
|
||||
|
||||
@objc func presentColorPickerNoAlpha(_ sender: UIView) {
|
||||
let configuration = ColorPickerConfiguration(color: color.withAlphaComponent(0.5))
|
||||
configuration.supportsAlpha = false
|
||||
|
||||
let colorPickerViewController = ColorPickerViewController(configuration: configuration)
|
||||
colorPickerViewController.delegate = self
|
||||
colorPickerViewController.popoverPresentationController?.sourceView = sender
|
||||
tabBarController!.present(colorPickerViewController, animated: true)
|
||||
}
|
||||
|
||||
@objc func presentColorPickerNoTabs(_ sender: UIView) {
|
||||
let configuration = ColorPickerConfiguration(color: color)
|
||||
configuration.showTabs = false
|
||||
|
||||
let colorPickerViewController = ColorPickerViewController(configuration: configuration)
|
||||
colorPickerViewController.delegate = self
|
||||
colorPickerViewController.popoverPresentationController?.sourceView = sender
|
||||
tabBarController!.present(colorPickerViewController, animated: true)
|
||||
}
|
||||
|
||||
@objc func presentColorPickerCustomisedTitleNoTabs(_ sender: UIView) {
|
||||
let configuration = ColorPickerConfiguration(color: color)
|
||||
configuration.title = "Select an Awesome Color"
|
||||
configuration.showTabs = false
|
||||
|
||||
let colorPickerViewController = ColorPickerViewController(configuration: configuration)
|
||||
colorPickerViewController.delegate = self
|
||||
colorPickerViewController.popoverPresentationController?.sourceView = sender
|
||||
tabBarController!.present(colorPickerViewController, animated: true)
|
||||
}
|
||||
|
||||
@objc func presentColorPickerNoOverrideSmartInvert(_ sender: UIView) {
|
||||
let configuration = ColorPickerConfiguration(color: color)
|
||||
configuration.overrideSmartInvert = false
|
||||
|
||||
let colorPickerViewController = ColorPickerViewController(configuration: configuration)
|
||||
colorPickerViewController.delegate = self
|
||||
colorPickerViewController.popoverPresentationController?.sourceView = sender
|
||||
tabBarController!.present(colorPickerViewController, animated: true)
|
||||
}
|
||||
|
||||
@objc func presentColorPickerDeprecatedAPI(_ sender: UIView) {
|
||||
let colorPickerViewController = ColorPickerViewController()
|
||||
colorPickerViewController.delegate = self
|
||||
colorPickerViewController.color = color
|
||||
colorPickerViewController.popoverPresentationController?.sourceView = sender
|
||||
tabBarController!.present(colorPickerViewController, animated: true)
|
||||
}
|
||||
|
||||
@objc func presentUIKitColorPicker(_ sender: UIView) {
|
||||
if #available(iOS 14, *) {
|
||||
let colorPickerViewController = UIColorPickerViewController()
|
||||
colorPickerViewController.delegate = self
|
||||
colorPickerViewController.selectedColor = color
|
||||
colorPickerViewController.popoverPresentationController?.sourceView = sender
|
||||
tabBarController!.present(colorPickerViewController, animated: true)
|
||||
} else {
|
||||
fatalError("UIColorPickerViewController is only available as of iOS 14")
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
extension FirstViewController: ColorPickerDelegate {
|
||||
|
||||
func colorPicker(_ colorPicker: ColorPickerViewController, didSelect color: UIColor) {
|
||||
NSLog("User selected color %@ (%@)", color.propertyListValue, String(describing: color))
|
||||
self.color = color
|
||||
view.window!.tintColor = color
|
||||
colorWell.color = color
|
||||
}
|
||||
|
||||
func colorPicker(_ colorPicker: ColorPickerViewController, didAccept color: UIColor) {
|
||||
NSLog("User accepted color %@ (%@)", color.propertyListValue, String(describing: color))
|
||||
}
|
||||
|
||||
func colorPickerDidCancel(_ colorPicker: ColorPickerViewController) {
|
||||
NSLog("Color picker cancelled")
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@available(iOS 14, *)
|
||||
extension FirstViewController: UIColorPickerViewControllerDelegate {
|
||||
|
||||
func colorPickerViewControllerDidSelectColor(_ viewController: UIColorPickerViewController) {
|
||||
NSLog("UIKit color picker value changed with color %@ (%@)",
|
||||
viewController.selectedColor.propertyListValue,
|
||||
String(describing: viewController.selectedColor))
|
||||
color = viewController.selectedColor
|
||||
view.window!.tintColor = viewController.selectedColor
|
||||
if let uikitWell = uikitWell as? UIColorWell {
|
||||
uikitWell.selectedColor = viewController.selectedColor
|
||||
}
|
||||
}
|
||||
|
||||
func colorPickerViewControllerDidFinish(_ viewController: UIColorPickerViewController) {
|
||||
NSLog("UIKit color picker finished")
|
||||
}
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user