initial
This commit is contained in:
63
Pods/SwiftEntryKit/Source/Utils/GradientView.swift
generated
Normal file
63
Pods/SwiftEntryKit/Source/Utils/GradientView.swift
generated
Normal file
@@ -0,0 +1,63 @@
|
||||
//
|
||||
// GradientView.swift
|
||||
// SwiftEntryKit
|
||||
//
|
||||
// Created by Daniel Huri on 4/20/18.
|
||||
// Copyright (c) 2018 huri000@gmail.com. All rights reserved.
|
||||
//
|
||||
|
||||
import UIKit
|
||||
|
||||
class GradientView: UIView {
|
||||
|
||||
struct Style {
|
||||
let gradient: EKAttributes.BackgroundStyle.Gradient
|
||||
let displayMode: EKAttributes.DisplayMode
|
||||
|
||||
init?(gradient: EKAttributes.BackgroundStyle.Gradient?,
|
||||
displayMode: EKAttributes.DisplayMode) {
|
||||
guard let gradient = gradient else {
|
||||
return nil
|
||||
}
|
||||
self.gradient = gradient
|
||||
self.displayMode = displayMode
|
||||
}
|
||||
}
|
||||
|
||||
private let gradientLayer = CAGradientLayer()
|
||||
|
||||
var style: Style? {
|
||||
didSet {
|
||||
setupColor()
|
||||
}
|
||||
}
|
||||
|
||||
init() {
|
||||
super.init(frame: .zero)
|
||||
layer.addSublayer(gradientLayer)
|
||||
}
|
||||
|
||||
required init?(coder aDecoder: NSCoder) {
|
||||
fatalError("init(coder:) has not been implemented")
|
||||
}
|
||||
|
||||
override func layoutSubviews() {
|
||||
super.layoutSubviews()
|
||||
gradientLayer.frame = bounds
|
||||
}
|
||||
|
||||
private func setupColor() {
|
||||
guard let style = style else {
|
||||
return
|
||||
}
|
||||
gradientLayer.colors = style.gradient.colors.map {
|
||||
$0.color(for: traitCollection, mode: style.displayMode).cgColor
|
||||
}
|
||||
gradientLayer.startPoint = style.gradient.startPoint
|
||||
gradientLayer.endPoint = style.gradient.endPoint
|
||||
}
|
||||
|
||||
override func traitCollectionDidChange(_ previousTraitCollection: UITraitCollection?) {
|
||||
setupColor()
|
||||
}
|
||||
}
|
||||
20
Pods/SwiftEntryKit/Source/Utils/HapticFeedbackGenerator.swift
generated
Normal file
20
Pods/SwiftEntryKit/Source/Utils/HapticFeedbackGenerator.swift
generated
Normal file
@@ -0,0 +1,20 @@
|
||||
//
|
||||
// HapticFeedbackGenerator.swift
|
||||
// SwiftEntryKit
|
||||
//
|
||||
// Created by Daniel Huri on 4/20/18.
|
||||
// Copyright (c) 2018 huri000@gmail.com. All rights reserved.
|
||||
//
|
||||
|
||||
import UIKit
|
||||
|
||||
struct HapticFeedbackGenerator {
|
||||
@available(iOS 10.0, *)
|
||||
static func notification(type: EKAttributes.NotificationHapticFeedback) {
|
||||
guard let value = type.value else {
|
||||
return
|
||||
}
|
||||
let generator = UINotificationFeedbackGenerator()
|
||||
generator.notificationOccurred(value)
|
||||
}
|
||||
}
|
||||
22
Pods/SwiftEntryKit/Source/Utils/UIView+Responder.swift
generated
Normal file
22
Pods/SwiftEntryKit/Source/Utils/UIView+Responder.swift
generated
Normal file
@@ -0,0 +1,22 @@
|
||||
//
|
||||
// UIView+Responder.swift
|
||||
// SwiftEntryKit
|
||||
//
|
||||
// Created by Daniel Huri on 5/17/18.
|
||||
//
|
||||
|
||||
import UIKit
|
||||
|
||||
extension UIView {
|
||||
var containsFirstResponder: Bool {
|
||||
var contains = false
|
||||
for subview in subviews.reversed() where !contains {
|
||||
if subview.isFirstResponder {
|
||||
contains = true
|
||||
} else {
|
||||
contains = subview.containsFirstResponder
|
||||
}
|
||||
}
|
||||
return contains
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user