/* * Copyright (c) Meta Platforms, Inc. and affiliates. * * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. */ import UIKit final class ImageCell: UICollectionViewCell { fileprivate let imageView: UIImageView = { let view = UIImageView() view.contentMode = .scaleAspectFill view.clipsToBounds = true view.backgroundColor = UIColor.secondaryBackground return view }() fileprivate let activityView: UIActivityIndicatorView = { let view = UIActivityIndicatorView() view.style = UIActivityIndicatorView.defaultStyle view.startAnimating() return view }() override init(frame: CGRect) { super.init(frame: frame) contentView.addSubview(imageView) contentView.addSubview(activityView) } required init?(coder aDecoder: NSCoder) { fatalError("init(coder:) has not been implemented") } override func layoutSubviews() { super.layoutSubviews() let bounds = contentView.bounds activityView.center = CGPoint(x: bounds.width / 2.0, y: bounds.height / 2.0) imageView.frame = bounds } func setImage(image: UIImage?) { imageView.image = image if image != nil { activityView.stopAnimating() } else { activityView.startAnimating() } } }