ImageCell.swift 1.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455
  1. //
  2. // ImageCell.swift
  3. // ALImagePickerViewController
  4. //
  5. // Created by Alex Littlejohn on 2015/06/09.
  6. // Copyright (c) 2015 zero. All rights reserved.
  7. //
  8. import UIKit
  9. import Photos
  10. class ImageCell: UICollectionViewCell {
  11. let imageView : UIImageView = {
  12. let imageView = UIImageView()
  13. imageView.contentMode = .scaleAspectFill
  14. imageView.layer.masksToBounds = true
  15. imageView.image = UIImage(named: "placeholder",
  16. in: CameraGlobals.shared.bundle,
  17. compatibleWith: nil)
  18. return imageView
  19. }()
  20. override init(frame: CGRect) {
  21. super.init(frame: frame)
  22. contentView.addSubview(imageView)
  23. }
  24. required init?(coder aDecoder: NSCoder) {
  25. super.init(coder: aDecoder)
  26. }
  27. override func layoutSubviews() {
  28. super.layoutSubviews()
  29. imageView.frame = bounds
  30. }
  31. override func prepareForReuse() {
  32. super.prepareForReuse()
  33. imageView.image = UIImage(named: "placeholder",
  34. in: CameraGlobals.shared.bundle,
  35. compatibleWith: nil)
  36. }
  37. func configureWithModel(_ model: PHAsset) {
  38. if tag != 0 {
  39. PHImageManager.default().cancelImageRequest(PHImageRequestID(tag))
  40. }
  41. tag = Int(PHImageManager.default().requestImage(for: model, targetSize: contentView.bounds.size, contentMode: .aspectFill, options: nil) { image, info in
  42. self.imageView.image = image
  43. })
  44. }
  45. }