initial
This commit is contained in:
92
Pods/SwiftEntryKit/Source/Infra/EKBackgroundView.swift
generated
Normal file
92
Pods/SwiftEntryKit/Source/Infra/EKBackgroundView.swift
generated
Normal file
@@ -0,0 +1,92 @@
|
||||
//
|
||||
// EKBackgroundView.swift
|
||||
// SwiftEntryKit
|
||||
//
|
||||
// Created by Daniel Huri on 4/20/18.
|
||||
// Copyright (c) 2018 huri000@gmail.com. All rights reserved.
|
||||
//
|
||||
|
||||
import UIKit
|
||||
|
||||
final class EKBackgroundView: EKStyleView {
|
||||
|
||||
struct Style {
|
||||
let background: EKAttributes.BackgroundStyle
|
||||
let displayMode: EKAttributes.DisplayMode
|
||||
}
|
||||
|
||||
// MARK: Props
|
||||
private let visualEffectView: UIVisualEffectView
|
||||
private let imageView: UIImageView
|
||||
private let gradientView: GradientView
|
||||
|
||||
// MARK: Setup
|
||||
init() {
|
||||
imageView = UIImageView()
|
||||
visualEffectView = UIVisualEffectView(effect: nil)
|
||||
gradientView = GradientView()
|
||||
super.init(frame: UIScreen.main.bounds)
|
||||
|
||||
addSubview(imageView)
|
||||
imageView.contentMode = .scaleAspectFill
|
||||
imageView.fillSuperview()
|
||||
|
||||
addSubview(visualEffectView)
|
||||
visualEffectView.fillSuperview()
|
||||
|
||||
addSubview(gradientView)
|
||||
gradientView.fillSuperview()
|
||||
}
|
||||
|
||||
required init?(coder aDecoder: NSCoder) {
|
||||
fatalError("init(coder:) has not been implemented")
|
||||
}
|
||||
|
||||
// Background setter
|
||||
var style: Style! {
|
||||
didSet {
|
||||
guard let style = style else {
|
||||
return
|
||||
}
|
||||
var gradient: EKAttributes.BackgroundStyle.Gradient?
|
||||
var backgroundEffect: UIBlurEffect?
|
||||
var backgroundColor: UIColor = .clear
|
||||
var backgroundImage: UIImage?
|
||||
|
||||
switch style.background {
|
||||
case .color(color: let color):
|
||||
backgroundColor = color.color(for: traitCollection,
|
||||
mode: style.displayMode)
|
||||
case .gradient(gradient: let value):
|
||||
gradient = value
|
||||
case .image(image: let image):
|
||||
backgroundImage = image
|
||||
case .visualEffect(style: let value):
|
||||
backgroundEffect = value.blurEffect(for: traitCollection,
|
||||
mode: style.displayMode)
|
||||
case .clear:
|
||||
break
|
||||
}
|
||||
|
||||
gradientView.style = GradientView.Style(gradient: gradient,
|
||||
displayMode: style.displayMode)
|
||||
visualEffectView.effect = backgroundEffect
|
||||
layer.backgroundColor = backgroundColor.cgColor
|
||||
imageView.image = backgroundImage
|
||||
}
|
||||
}
|
||||
|
||||
override func traitCollectionDidChange(_ previousTraitCollection: UITraitCollection?) {
|
||||
guard let style = style else { return }
|
||||
switch style.background {
|
||||
case .color(color: let color):
|
||||
layer.backgroundColor = color.color(for: traitCollection,
|
||||
mode: style.displayMode).cgColor
|
||||
case .visualEffect(style: let value):
|
||||
visualEffectView.effect = value.blurEffect(for: traitCollection,
|
||||
mode: style.displayMode)
|
||||
default:
|
||||
break
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user