84 lines
3.5 KiB
Swift
84 lines
3.5 KiB
Swift
//
|
|
// ContentWarningOverlayView.swift
|
|
//
|
|
//
|
|
// Created by MainasuK on 2021-12-14.
|
|
//
|
|
|
|
import os.log
|
|
import UIKit
|
|
|
|
public protocol ContentWarningOverlayViewDelegate: AnyObject {
|
|
func contentWarningOverlayViewDidPressed(_ contentWarningOverlayView: ContentWarningOverlayView)
|
|
}
|
|
|
|
public final class ContentWarningOverlayView: UIView {
|
|
|
|
public static let blurVisualEffect = UIBlurEffect(style: .systemUltraThinMaterial)
|
|
|
|
let logger = Logger(subsystem: "ContentWarningOverlayView", category: "View")
|
|
|
|
public weak var delegate: ContentWarningOverlayViewDelegate?
|
|
|
|
public let blurVisualEffectView = UIVisualEffectView(effect: ContentWarningOverlayView.blurVisualEffect)
|
|
public let vibrancyVisualEffectView = UIVisualEffectView(effect: UIVibrancyEffect(blurEffect: ContentWarningOverlayView.blurVisualEffect))
|
|
// let alertImageView: UIImageView = {
|
|
// let imageView = UIImageView()
|
|
// imageView.image = Asset.Indices.exclamationmarkTriangleLarge.image.withRenderingMode(.alwaysTemplate)
|
|
// return imageView
|
|
// }()
|
|
|
|
public let tapGestureRecognizer = UITapGestureRecognizer.singleTapGestureRecognizer
|
|
|
|
override init(frame: CGRect) {
|
|
super.init(frame: frame)
|
|
_init()
|
|
}
|
|
|
|
required init?(coder: NSCoder) {
|
|
super.init(coder: coder)
|
|
_init()
|
|
}
|
|
|
|
}
|
|
|
|
extension ContentWarningOverlayView {
|
|
private func _init() {
|
|
// overlay
|
|
blurVisualEffectView.translatesAutoresizingMaskIntoConstraints = false
|
|
addSubview(blurVisualEffectView)
|
|
NSLayoutConstraint.activate([
|
|
blurVisualEffectView.topAnchor.constraint(equalTo: topAnchor),
|
|
blurVisualEffectView.leadingAnchor.constraint(equalTo: leadingAnchor),
|
|
blurVisualEffectView.trailingAnchor.constraint(equalTo: trailingAnchor),
|
|
blurVisualEffectView.bottomAnchor.constraint(equalTo: bottomAnchor),
|
|
])
|
|
|
|
vibrancyVisualEffectView.translatesAutoresizingMaskIntoConstraints = false
|
|
blurVisualEffectView.contentView.addSubview(vibrancyVisualEffectView)
|
|
NSLayoutConstraint.activate([
|
|
vibrancyVisualEffectView.topAnchor.constraint(equalTo: blurVisualEffectView.contentView.topAnchor),
|
|
vibrancyVisualEffectView.leadingAnchor.constraint(equalTo: blurVisualEffectView.contentView.leadingAnchor),
|
|
vibrancyVisualEffectView.trailingAnchor.constraint(equalTo: blurVisualEffectView.contentView.trailingAnchor),
|
|
vibrancyVisualEffectView.bottomAnchor.constraint(equalTo: blurVisualEffectView.contentView.bottomAnchor),
|
|
])
|
|
|
|
// alertImageView.translatesAutoresizingMaskIntoConstraints = false
|
|
// vibrancyVisualEffectView.contentView.addSubview(alertImageView)
|
|
// NSLayoutConstraint.activate([
|
|
// alertImageView.centerXAnchor.constraint(equalTo: vibrancyVisualEffectView.contentView.centerXAnchor),
|
|
// alertImageView.centerYAnchor.constraint(equalTo: vibrancyVisualEffectView.contentView.centerYAnchor),
|
|
// ])
|
|
|
|
tapGestureRecognizer.addTarget(self, action: #selector(ContentWarningOverlayView.tapGestureRecognizerHandler(_:)))
|
|
addGestureRecognizer(tapGestureRecognizer)
|
|
}
|
|
}
|
|
|
|
extension ContentWarningOverlayView {
|
|
@objc private func tapGestureRecognizerHandler(_ sender: UITapGestureRecognizer) {
|
|
logger.log(level: .debug, "\((#file as NSString).lastPathComponent, privacy: .public)[\(#line, privacy: .public)], \(#function, privacy: .public)")
|
|
delegate?.contentWarningOverlayViewDidPressed(self)
|
|
}
|
|
}
|