// // BannerCollectionViewCell.swift // AltStore // // Created by Riley Testut on 3/23/20. // Copyright © 2020 Riley Testut. All rights reserved. // import UIKit final class BannerCollectionViewCell: UICollectionViewCell { private(set) var errorBadge: UIView? @IBOutlet private(set) var bannerView: AppBannerView! override func awakeFromNib() { super.awakeFromNib() self.contentView.autoresizingMask = [.flexibleWidth, .flexibleHeight] self.contentView.preservesSuperviewLayoutMargins = true if #available(iOS 13.0, *) { 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([ errorBadge.centerXAnchor.constraint(equalTo: self.bannerView.trailingAnchor, constant: -5), errorBadge.centerYAnchor.constraint(equalTo: self.bannerView.topAnchor, constant: 5), 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 } } }