TSAIPhotoDetailsBrowserCell.swift 2.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687
  1. //
  2. // TSAIPhotoDetailsBrowserCell.swift
  3. // TSLiveWallpaper
  4. //
  5. // Created by 100Years on 2025/6/17.
  6. //
  7. class TSAIPhotoDetailsBrowserCell: TSBaseCollectionCell {
  8. var model:TSActionInfoModel = TSActionInfoModel(){
  9. didSet{
  10. removeVideoView()
  11. if model.isVideo {
  12. panComparisonView.isHidden = true
  13. addVideoView()
  14. }else{
  15. panComparisonView.isHidden = false
  16. uploadPanComparisonView()
  17. }
  18. }
  19. }
  20. lazy var panComparisonView : TSImageIPanComparisonView = TSImageIPanComparisonView()
  21. var videoPlayerVC: TSAIListVideoPlayerVC?
  22. override func creatUI() {
  23. bgContentView.addSubview(panComparisonView)
  24. panComparisonView.snp.makeConstraints { make in
  25. make.height.equalTo(k_ScreenHeight)
  26. make.leading.trailing.equalTo(0)
  27. make.centerY.equalToSuperview()
  28. }
  29. }
  30. func uploadPanComparisonView(){
  31. let infoModel = model
  32. DispatchQueue.global(qos: .userInitiated).async {
  33. var oldImage:UIImage?
  34. var newImage:UIImage?
  35. let grounp = DispatchGroup()
  36. grounp.enter()
  37. TSImageStoreTool.downloadImageWithProgress(urlString: infoModel.request.imageUrl) { image in
  38. grounp.leave()
  39. oldImage = image
  40. }
  41. grounp.enter()
  42. TSImageStoreTool.downloadImageWithProgress(urlString: infoModel.response.resultUrl) { image in
  43. grounp.leave()
  44. newImage = image
  45. }
  46. grounp.notify(queue: .main) {
  47. if let oldImage = oldImage,let newImage = newImage {
  48. let size = oldImage.size.height > newImage.size.height ? oldImage.size : newImage.size
  49. self.panComparisonView.snp.updateConstraints { make in
  50. make.height.equalTo(kGetUIWdith(designSize: size, currentW: k_ScreenWidth))
  51. }
  52. }
  53. self.panComparisonView.configure(oldImage: oldImage, newImage: newImage)
  54. }
  55. }
  56. }
  57. }
  58. extension TSAIPhotoDetailsBrowserCell {
  59. func addVideoView(){
  60. self.videoPlayerVC = TSAIListVideoPlayerVC(videoURL: self.model.response.videoURL)
  61. self.bgContentView.addSubview(self.videoPlayerVC!.view)
  62. self.videoPlayerVC!.view.snp.remakeConstraints { make in
  63. make.center.equalToSuperview()
  64. make.width.equalTo(k_ScreenWidth)
  65. make.height.equalTo(k_ScreenHeight)
  66. }
  67. self.videoPlayerVC?.isRunloppPlay = true
  68. self.videoPlayerVC?.playPlay()
  69. }
  70. func removeVideoView(){
  71. videoPlayerVC?.view.removeFromSuperview()
  72. }
  73. }