/* * Copyright (c) Facebook, Inc. and its 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(white: 0.95, alpha: 1) return view }() fileprivate let activityView: UIActivityIndicatorView = { let view = UIActivityIndicatorView(style: .gray) 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() } } }