2020-02-10 17:30:11 -08:00
|
|
|
//
|
2023-04-04 14:37:11 -05:00
|
|
|
// AppBannerCollectionViewCell.swift
|
2020-02-10 17:30:11 -08:00
|
|
|
// AltStore
|
|
|
|
|
//
|
2020-03-24 13:27:44 -07:00
|
|
|
// Created by Riley Testut on 3/23/20.
|
2020-02-10 17:30:11 -08:00
|
|
|
// Copyright © 2020 Riley Testut. All rights reserved.
|
|
|
|
|
//
|
|
|
|
|
|
|
|
|
|
import UIKit
|
|
|
|
|
|
2023-01-04 09:52:12 -05:00
|
|
|
final class BannerCollectionViewCell: UICollectionViewCell
|
2020-02-10 17:30:11 -08:00
|
|
|
{
|
2023-04-04 14:37:11 -05:00
|
|
|
let bannerView = AppBannerView(frame: .zero)
|
2020-02-10 17:30:11 -08:00
|
|
|
|
2023-04-04 14:37:11 -05:00
|
|
|
private(set) var errorBadge: UIView!
|
|
|
|
|
|
|
|
|
|
override init(frame: CGRect)
|
|
|
|
|
{
|
|
|
|
|
super.init(frame: frame)
|
|
|
|
|
|
|
|
|
|
self.initialize()
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
required init?(coder: NSCoder)
|
2020-02-10 17:30:11 -08:00
|
|
|
{
|
2023-04-04 14:37:11 -05:00
|
|
|
super.init(coder: coder)
|
2020-02-10 17:30:11 -08:00
|
|
|
|
2023-04-04 14:37:11 -05:00
|
|
|
self.initialize()
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private func initialize()
|
|
|
|
|
{
|
2020-02-10 17:30:11 -08:00
|
|
|
self.contentView.autoresizingMask = [.flexibleWidth, .flexibleHeight]
|
|
|
|
|
self.contentView.preservesSuperviewLayoutMargins = true
|
2020-08-27 16:39:03 -07:00
|
|
|
|
2023-04-04 14:37:11 -05:00
|
|
|
self.bannerView.translatesAutoresizingMaskIntoConstraints = false
|
|
|
|
|
self.contentView.addSubview(self.bannerView)
|
|
|
|
|
|
2023-03-02 16:53:36 -06:00
|
|
|
let errorBadge = UIView()
|
|
|
|
|
errorBadge.translatesAutoresizingMaskIntoConstraints = false
|
|
|
|
|
errorBadge.isHidden = true
|
|
|
|
|
self.addSubview(errorBadge)
|
|
|
|
|
|
|
|
|
|
// Solid background to make the X opaque white.
|
|
|
|
|
let backgroundView = UIView()
|
|
|
|
|
backgroundView.translatesAutoresizingMaskIntoConstraints = false
|
|
|
|
|
backgroundView.backgroundColor = .white
|
|
|
|
|
errorBadge.addSubview(backgroundView)
|
|
|
|
|
|
|
|
|
|
let badgeView = UIImageView(image: UIImage(systemName: "exclamationmark.circle.fill"))
|
|
|
|
|
badgeView.preferredSymbolConfiguration = UIImage.SymbolConfiguration(scale: .large)
|
|
|
|
|
badgeView.tintColor = .systemRed
|
|
|
|
|
errorBadge.addSubview(badgeView, pinningEdgesWith: .zero)
|
|
|
|
|
|
|
|
|
|
NSLayoutConstraint.activate([
|
2023-04-04 14:37:11 -05:00
|
|
|
self.bannerView.topAnchor.constraint(equalTo: self.contentView.topAnchor),
|
|
|
|
|
self.bannerView.bottomAnchor.constraint(equalTo: self.contentView.bottomAnchor),
|
|
|
|
|
self.bannerView.leadingAnchor.constraint(equalTo: self.contentView.layoutMarginsGuide.leadingAnchor),
|
|
|
|
|
self.bannerView.trailingAnchor.constraint(equalTo: self.contentView.layoutMarginsGuide.trailingAnchor),
|
|
|
|
|
|
2023-03-02 16:53:36 -06:00
|
|
|
errorBadge.centerXAnchor.constraint(equalTo: self.bannerView.trailingAnchor, constant: -5),
|
|
|
|
|
errorBadge.centerYAnchor.constraint(equalTo: self.bannerView.topAnchor, constant: 5),
|
2020-08-27 16:39:03 -07:00
|
|
|
|
2023-03-02 16:53:36 -06:00
|
|
|
backgroundView.centerXAnchor.constraint(equalTo: badgeView.centerXAnchor),
|
|
|
|
|
backgroundView.centerYAnchor.constraint(equalTo: badgeView.centerYAnchor),
|
|
|
|
|
backgroundView.widthAnchor.constraint(equalTo: badgeView.widthAnchor, multiplier: 0.5),
|
|
|
|
|
backgroundView.heightAnchor.constraint(equalTo: badgeView.heightAnchor, multiplier: 0.5)
|
|
|
|
|
])
|
|
|
|
|
|
|
|
|
|
self.errorBadge = errorBadge
|
2020-02-10 17:30:11 -08:00
|
|
|
}
|
|
|
|
|
}
|