GenreCollectionViewCell.swift 2.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960
  1. /*****************************************************************************
  2. * GenreCollectionViewCell.swift
  3. * VLC for iOS
  4. *****************************************************************************
  5. * Copyright (c) 2018 VideoLAN. All rights reserved.
  6. * $Id$
  7. *
  8. * Authors: Carola Nitz <nitz.carola # googlemail.com>
  9. *
  10. * Refer to the COPYING file of the official project for license.
  11. *****************************************************************************/
  12. import Foundation
  13. class GenreCollectionViewCell: BaseCollectionViewCell {
  14. @IBOutlet weak var thumbnailView: UIImageView!
  15. @IBOutlet weak var titleLabel: UILabel!
  16. @IBOutlet weak var numberOfTracksLabel: UILabel!
  17. override var media: VLCMLObject? {
  18. didSet {
  19. guard let genre = media as? VLCMLGenre else {
  20. fatalError("needs to be of Type VLCMLGenre")
  21. }
  22. update(genre:genre)
  23. }
  24. }
  25. override func awakeFromNib() {
  26. super.awakeFromNib()
  27. NotificationCenter.default.addObserver(self, selector: #selector(themeDidChange), name: .VLCThemeDidChangeNotification, object: nil)
  28. themeDidChange()
  29. thumbnailView.layer.masksToBounds = true
  30. thumbnailView.layer.cornerRadius = thumbnailView.frame.size.width / 2.0
  31. }
  32. @objc fileprivate func themeDidChange() {
  33. backgroundColor = PresentationTheme.current.colors.background
  34. titleLabel.textColor = PresentationTheme.current.colors.cellTextColor
  35. numberOfTracksLabel.textColor = PresentationTheme.current.colors.cellDetailTextColor
  36. }
  37. func update(genre: VLCMLGenre) {
  38. titleLabel.text = genre.name
  39. numberOfTracksLabel.text = genre.numberOfTracksString()
  40. }
  41. override class func cellSizeForWidth(_ width: CGFloat) -> CGSize {
  42. return CGSize(width: width, height: 50)
  43. }
  44. override func prepareForReuse() {
  45. super.prepareForReuse()
  46. titleLabel.text = ""
  47. numberOfTracksLabel.text = ""
  48. thumbnailView.image = nil
  49. }
  50. }