PublishEditAddImgCollectionCell.swift 3.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108
  1. //
  2. // PublishEditAddImgCollectionCell.swift
  3. // RainbowPlanet
  4. //
  5. // Created by Christopher on 2019/6/17.
  6. // Copyright © 2019 RainbowPlanet. All rights reserved.
  7. // 编辑发布--添加照片のCell(有图)
  8. import UIKit
  9. import RxSwift
  10. import Kingfisher
  11. class PublishEditAddImgCollectionCell: UICollectionViewCell {
  12. let disposeBag = DisposeBag()
  13. var mediaType : PublishMediaType? {
  14. didSet {
  15. if mediaType == .video {
  16. delButton.isHidden = true
  17. }else {
  18. delButton.isHidden = false
  19. }
  20. }
  21. }
  22. var showImage: UIImage? {
  23. didSet {
  24. if self.showImage != nil {
  25. picImageView.image = self.showImage
  26. }
  27. }
  28. }
  29. var productSearchModel: ProductSearchModel? {
  30. didSet {
  31. picImageView.kf.setImage(with: kURLThumbnailsImage(name: productSearchModel?.img ?? "default_pic", size: self.size), placeholder: kImage(name: "default_pic"))
  32. KingfisherManager.shared.cache.clearMemoryCache()
  33. }
  34. }
  35. typealias DelPicBlock = (_ idxRow:Int?) -> Void
  36. var delPicBlock : DelPicBlock?
  37. class func cellWith(collectionView:UICollectionView,indexPath:IndexPath) -> PublishEditAddImgCollectionCell {
  38. let ID = "PublishEditAddImgCollectionCell"
  39. collectionView.register(PublishEditAddImgCollectionCell.self, forCellWithReuseIdentifier: ID)
  40. let cell : PublishEditAddImgCollectionCell = collectionView.dequeueReusableCell(withReuseIdentifier: ID, for: indexPath) as! PublishEditAddImgCollectionCell
  41. cell.indexPath = indexPath
  42. return cell
  43. }
  44. //MARK: - indexPath
  45. var indexPath: IndexPath?{
  46. didSet {
  47. }
  48. }
  49. //MARK: - 初始化
  50. override init(frame: CGRect) {
  51. super.init(frame: frame)
  52. cornerRadius = 2
  53. masksToBounds = true
  54. setupViews()
  55. setupLayouts()
  56. }
  57. required init?(coder aDecoder: NSCoder) {
  58. fatalError("init(coder:) has not been implemented")
  59. }
  60. //MRAK: - 设置View
  61. private func setupViews() {
  62. addSubview(picImageView)
  63. addSubview(delButton)
  64. }
  65. private func setupLayouts() {
  66. picImageView.snp.makeConstraints { (make) in
  67. make.edges.equalToSuperview()
  68. }
  69. delButton.snp.makeConstraints { (make) in
  70. make.top.right.equalToSuperview()
  71. make.size.equalTo(26)
  72. }
  73. }
  74. private lazy var picImageView: UIImageView = {
  75. let picImageView = UIImageView()
  76. picImageView.contentMode = .scaleAspectFill
  77. return picImageView
  78. }()
  79. private lazy var delButton: UIButton = {
  80. let delButton = UIButton(type: UIButton.ButtonType.custom)
  81. delButton.setImage(kImage(name: "common_sku_cancel"), for: UIControl.State.normal)
  82. delButton.rx.tap.subscribe(onNext: {
  83. [weak self] (data) in
  84. let idxPath = self?.indexPath
  85. if let delPicBlock = self?.delPicBlock {
  86. delPicBlock(idxPath?.row)
  87. }
  88. }).disposed(by: disposeBag)
  89. return delButton
  90. }()
  91. }