feat: Add blurred close button
This commit is contained in:
@@ -9,6 +9,7 @@
|
||||
/* Begin PBXBuildFile section */
|
||||
6525A82625E13FD4008FE0D0 /* SeismicNetworkAdvertiseTableViewCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6525A82525E13FD4008FE0D0 /* SeismicNetworkAdvertiseTableViewCell.swift */; };
|
||||
6544416B25E9599000C41714 /* EQNDebugViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6544416A25E9599000C41714 /* EQNDebugViewController.swift */; };
|
||||
6586971125F44C26009C0182 /* EQNBlurredCloseButton.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6586971025F44C26009C0182 /* EQNBlurredCloseButton.swift */; };
|
||||
65DBFB4B25E29DD60041CBA6 /* SeismicNetworksMapDetailViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 65DBFB4A25E29DD60041CBA6 /* SeismicNetworksMapDetailViewController.swift */; };
|
||||
65DBFB5F25E2A5010041CBA6 /* EQNMapAnnotationPastquakes.m in Sources */ = {isa = PBXBuildFile; fileRef = 8C602249218EDBE200C799C2 /* EQNMapAnnotationPastquakes.m */; };
|
||||
65DBFB7425E2BBF20041CBA6 /* GADTMediumTemplateView.xib in Resources */ = {isa = PBXBuildFile; fileRef = 65DBFB6F25E2BBF20041CBA6 /* GADTMediumTemplateView.xib */; };
|
||||
@@ -274,6 +275,7 @@
|
||||
40CD2E5581CF2FA3D52F392D /* Pods-Earthquake Network.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Earthquake Network.release.xcconfig"; path = "Pods/Target Support Files/Pods-Earthquake Network/Pods-Earthquake Network.release.xcconfig"; sourceTree = "<group>"; };
|
||||
6525A82525E13FD4008FE0D0 /* SeismicNetworkAdvertiseTableViewCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SeismicNetworkAdvertiseTableViewCell.swift; sourceTree = "<group>"; };
|
||||
6544416A25E9599000C41714 /* EQNDebugViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = EQNDebugViewController.swift; sourceTree = "<group>"; };
|
||||
6586971025F44C26009C0182 /* EQNBlurredCloseButton.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = EQNBlurredCloseButton.swift; sourceTree = "<group>"; };
|
||||
65DBFB4A25E29DD60041CBA6 /* SeismicNetworksMapDetailViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SeismicNetworksMapDetailViewController.swift; sourceTree = "<group>"; };
|
||||
65DBFB6F25E2BBF20041CBA6 /* GADTMediumTemplateView.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = GADTMediumTemplateView.xib; sourceTree = "<group>"; };
|
||||
65DBFB7025E2BBF20041CBA6 /* GADTTemplateView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = GADTTemplateView.h; sourceTree = "<group>"; };
|
||||
@@ -1099,6 +1101,7 @@
|
||||
DC52B8A424FCCD6900ABEBA6 /* AppTheme.swift */,
|
||||
DCA5B6E6252E4BD8002AEC96 /* EQNBaseTableViewCell.swift */,
|
||||
DCBB267B24D1E98300F04559 /* EQNInsetTableViewCell.swift */,
|
||||
6586971025F44C26009C0182 /* EQNBlurredCloseButton.swift */,
|
||||
);
|
||||
path = UI;
|
||||
sourceTree = "<group>";
|
||||
@@ -1575,6 +1578,7 @@
|
||||
DC646F32252B698B000AA5FD /* AlertsSeismicNotificationCompactTableViewCell.swift in Sources */,
|
||||
DCF10DCD24D2C935009F34C3 /* EQNPurchaseAvailability.swift in Sources */,
|
||||
DC08803F24F5A89000186D97 /* SettingEnableTableViewCell.swift in Sources */,
|
||||
6586971125F44C26009C0182 /* EQNBlurredCloseButton.swift in Sources */,
|
||||
8CAFD7C521825E4A00F8BD29 /* EQNSisma.m in Sources */,
|
||||
DCC23DEC24D281CE003A2404 /* SubscriptionsActiveTableViewCell.swift in Sources */,
|
||||
8CF6604F214C0E58009F4314 /* EQNCalibrazione.m in Sources */,
|
||||
|
||||
@@ -0,0 +1,69 @@
|
||||
//
|
||||
// EQNBlurredCloseButton.swift
|
||||
// Earthquake Network
|
||||
//
|
||||
// Created by Andrea Busi on 07/03/21.
|
||||
// Copyright © 2021 Earthquake Network. All rights reserved.
|
||||
//
|
||||
|
||||
import Foundation
|
||||
|
||||
|
||||
class EQNBlurredCloseButton: UIButton {
|
||||
|
||||
// MARK: - Init
|
||||
|
||||
convenience init() {
|
||||
self.init(type: .custom)
|
||||
setupUI()
|
||||
}
|
||||
|
||||
// MARK: - Private
|
||||
|
||||
private func setupUI() {
|
||||
layer.masksToBounds = true
|
||||
|
||||
titleLabel?.font = UIFont.monospacedDigitSystemFont(ofSize: 16.0, weight: .medium)
|
||||
setTitle("X", for: .normal)
|
||||
|
||||
addBlurEffect(style: .extraLight)
|
||||
}
|
||||
|
||||
private func addBlurEffect(style: UIBlurEffect.Style = .regular) {
|
||||
backgroundColor = .clear
|
||||
|
||||
let blurView = UIVisualEffectView(effect: UIBlurEffect(style: style))
|
||||
blurView.isUserInteractionEnabled = false
|
||||
blurView.backgroundColor = UIColor.lightGray.withAlphaComponent(0.6)
|
||||
|
||||
insertSubview(blurView, at: 0)
|
||||
|
||||
blurView.translatesAutoresizingMaskIntoConstraints = false
|
||||
leadingAnchor.constraint(equalTo: blurView.leadingAnchor).isActive = true
|
||||
trailingAnchor.constraint(equalTo: blurView.trailingAnchor).isActive = true
|
||||
topAnchor.constraint(equalTo: blurView.topAnchor).isActive = true
|
||||
bottomAnchor.constraint(equalTo: blurView.bottomAnchor).isActive = true
|
||||
|
||||
if let imageView = self.imageView {
|
||||
imageView.backgroundColor = .clear
|
||||
bringSubviewToFront(imageView)
|
||||
}
|
||||
}
|
||||
|
||||
override func layoutSubviews() {
|
||||
super.layoutSubviews()
|
||||
|
||||
// force the button to be circle
|
||||
layer.cornerRadius = frame.height / 2.0
|
||||
}
|
||||
|
||||
// MARK: - Public
|
||||
|
||||
/// Add constaints to show the button on the upper right corner
|
||||
func addDefaultConstraint(to view: UIView) {
|
||||
leadingAnchor.constraint(equalTo: view.leadingAnchor, constant: 10.0).isActive = true
|
||||
topAnchor.constraint(equalTo: view.topAnchor, constant: 10.0).isActive = true
|
||||
widthAnchor.constraint(equalTo: heightAnchor).isActive = true
|
||||
heightAnchor.constraint(equalToConstant: 40.0).isActive = true
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user