From 3d6b0fea45c6f0b92e5e5221d924f7ee62abdb2c Mon Sep 17 00:00:00 2001 From: boyeon Date: Mon, 15 Jan 2024 01:27:18 +0900 Subject: [PATCH] =?UTF-8?q?[Feat/#81]=20HomeViewCell=20-=20=EB=B6=84?= =?UTF-8?q?=EA=B8=B0=20=EC=B2=98=EB=A6=AC=20=EC=98=81=EC=83=81=20=EB=B0=8F?= =?UTF-8?q?=20=EB=9D=BC=EC=9D=B4=ED=8C=85=20=EC=97=85=EB=8D=B0=EC=9D=B4?= =?UTF-8?q?=ED=8A=B8=20=EC=BD=94=EB=93=9C=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Home/Cells/BlackHoleImageCell.swift | 38 ++++++++++++++++--- 1 file changed, 32 insertions(+), 6 deletions(-) diff --git a/HMH_iOS/HMH_iOS/Presentation/Home/Cells/BlackHoleImageCell.swift b/HMH_iOS/HMH_iOS/Presentation/Home/Cells/BlackHoleImageCell.swift index 85d03e1..2c29638 100644 --- a/HMH_iOS/HMH_iOS/Presentation/Home/Cells/BlackHoleImageCell.swift +++ b/HMH_iOS/HMH_iOS/Presentation/Home/Cells/BlackHoleImageCell.swift @@ -6,17 +6,20 @@ // import UIKit +import AVFoundation import SnapKit import Then + final class BlackHoleImageCell: UICollectionViewCell { static let identifier = "BlackHoleImageCell" - private let blackHoleImageView = UIImageView().then { - $0.alpha = 0.1 - } + private var videoHandler = VideoHandler() + private let blackHoleImageView = UIImageView() + private lazy var blackHoleVideoView = VideoView(videoHandler: videoHandler) + private let homeBlackHoleStateLabel = UILabel().then { $0.font = .iosTitle3Semibold22 $0.textColor = .whiteText @@ -38,7 +41,7 @@ final class BlackHoleImageCell: UICollectionViewCell { } private func setHierarchy() { - self.addSubviews(blackHoleImageView, homeBlackHoleStateLabel) + self.addSubviews(blackHoleImageView, blackHoleVideoView, homeBlackHoleStateLabel) } private func setConstraints() { @@ -47,16 +50,39 @@ final class BlackHoleImageCell: UICollectionViewCell { $0.height.equalTo(blackHoleImageView.snp.width) } + blackHoleVideoView.snp.makeConstraints { + $0.top.horizontalEdges.equalToSuperview() + $0.height.equalTo(blackHoleImageView.snp.width) + } + homeBlackHoleStateLabel.snp.makeConstraints { $0.top.equalToSuperview().inset(23.adjusted) $0.leading.equalToSuperview().inset(21.adjusted) } } - func configureCell (image: UIImage, text: String){ - blackHoleImageView.image = image + func configureCell (image: UIImage? = nil, + videoUrl: URL?, + text: String){ homeBlackHoleStateLabel.text = text homeBlackHoleStateLabel.setTextWithLineHeight(text: text, lineHeight: 33.adjusted) homeBlackHoleStateLabel.textAlignment = .left + + DispatchQueue.main.async { + if let image { + self.blackHoleImageView.isHidden = false + self.blackHoleVideoView.isHidden = true + self.blackHoleImageView.image = image + } else { + self.blackHoleVideoView.isHidden = false + self.blackHoleImageView.isHidden = true + } + if let videoUrl { + self.blackHoleVideoView.isHidden = false + self.videoHandler.bindVideoItem(videoURL: videoUrl) + } else { + self.blackHoleVideoView.isHidden = true + } + } } }