From f2a5ba8a843e6e7964c41b16883f5486ff690f93 Mon Sep 17 00:00:00 2001 From: hyungyu Kim Date: Thu, 2 Dec 2021 15:14:12 +0900 Subject: [PATCH] =?UTF-8?q?[FEAT]=20#105=20-=20=EB=AA=85=ED=95=A8=EC=83=9D?= =?UTF-8?q?=EC=84=B1=20=EB=AF=B8=EB=A6=AC=EB=B3=B4=EA=B8=B0=20=EB=B7=B0=20?= =?UTF-8?q?=EB=AA=85=ED=95=A8=20=ED=99=94=EB=A9=B4=EC=A0=84=ED=99=98?= =?UTF-8?q?=ED=9A=A8=EA=B3=BC=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../CardCreationPreview.storyboard | 1 + .../Sources/Cells/CardCell/BackCardCell.swift | 36 +++++++++++ .../Cells/CardCell/FrontCardCell.swift | 33 +++++----- .../Sources/Cells/CardCell/FrontCardCell.xib | 4 +- .../CardCreationPreviewViewController.swift | 61 ++++++++++++++----- 5 files changed, 100 insertions(+), 35 deletions(-) diff --git a/NADA-iOS-forRelease/Resouces/Storyboards/CardCreation/CardCreationPreview.storyboard b/NADA-iOS-forRelease/Resouces/Storyboards/CardCreation/CardCreationPreview.storyboard index 902b7ceb..ddf4a4fd 100644 --- a/NADA-iOS-forRelease/Resouces/Storyboards/CardCreation/CardCreationPreview.storyboard +++ b/NADA-iOS-forRelease/Resouces/Storyboards/CardCreation/CardCreationPreview.storyboard @@ -25,6 +25,7 @@ + diff --git a/NADA-iOS-forRelease/Sources/Cells/CardCell/BackCardCell.swift b/NADA-iOS-forRelease/Sources/Cells/CardCell/BackCardCell.swift index 0c665bf7..3c236fcc 100644 --- a/NADA-iOS-forRelease/Sources/Cells/CardCell/BackCardCell.swift +++ b/NADA-iOS-forRelease/Sources/Cells/CardCell/BackCardCell.swift @@ -88,4 +88,40 @@ extension BackCardCell { self.secondTmiLabel.text = secondTmi self.thirdTmiLabel.text = thirdTmi } + + // FIXME: - UIImage 로 넘어올때. 나중에 어떻게 사용할지 정해야함. + func initCell(_ backgroundImage: UIImage?, + _ isMintImage: Bool, + _ isNoMintImage: Bool, + _ isSojuImage: Bool, + _ isBeerImage: Bool, + _ isPourImage: Bool, + _ isPutSauceImage: Bool, + _ isYangnyumImage: Bool, + _ isFriedImage: Bool, + _ firstTmi: String, + _ secondTmi: String, + _ thirdTmi: String) { + + self.backgroundImageView.image = backgroundImage ?? UIImage() + self.mintImageView.image = isMintImage == true ? + UIImage(named: "iconTasteOnMincho") : UIImage(named: "iconTasteOffMincho") + self.noMintImageView.image = isNoMintImage == true ? + UIImage(named: "iconTasteOnBanmincho") : UIImage(named: "iconTasteOffBanmincho") + self.sojuImageView.image = isSojuImage == true ? + UIImage(named: "iconTasteOnSoju") : UIImage(named: "iconTasteOffSoju") + self.beerImageView.image = isBeerImage == true ? + UIImage(named: "iconTasteOnBeer") : UIImage(named: "iconTasteOffBeer") + self.pourEatImageView.image = isPourImage == true ? + UIImage(named: "iconTasteOnBumeok") : UIImage(named: "iconTasteOffBumeok") + self.putSauceEatImageView.image = isPutSauceImage == true ? + UIImage(named: "iconTasteOnZzik") : UIImage(named: "iconTasteOffZzik") + self.sauceChickenImageView.image = isYangnyumImage == true ? + UIImage(named: "iconTasteOnSeasoned") : UIImage(named: "iconTasteOffSeasoned") + self.friedChickenImageView.image = isFriedImage == true ? + UIImage(named: "iconTasteOnFried") : UIImage(named: "iconTasteOffFried") + self.firstTmiLabel.text = firstTmi + self.secondTmiLabel.text = secondTmi + self.thirdTmiLabel.text = thirdTmi + } } diff --git a/NADA-iOS-forRelease/Sources/Cells/CardCell/FrontCardCell.swift b/NADA-iOS-forRelease/Sources/Cells/CardCell/FrontCardCell.swift index 594dc0c6..de513571 100644 --- a/NADA-iOS-forRelease/Sources/Cells/CardCell/FrontCardCell.swift +++ b/NADA-iOS-forRelease/Sources/Cells/CardCell/FrontCardCell.swift @@ -17,9 +17,7 @@ class FrontCardCell: CardCell { @IBOutlet weak var userNameLabel: UILabel! @IBOutlet weak var birthLabel: UILabel! @IBOutlet weak var mbtiLabel: UILabel! - @IBOutlet weak var instagramImageView: UIImageView! @IBOutlet weak var instagramIDLabel: UILabel! - @IBOutlet weak var linkURLImageView: UIImageView! @IBOutlet weak var linkURLLabel: UILabel! // MARK: - Life Cycle @@ -52,6 +50,7 @@ extension FrontCardCell { instagramIDLabel.textColor = .white linkURLLabel.font = .textRegular04 linkURLLabel.textColor = .white + linkURLLabel.numberOfLines = 2 } func initCell(_ backgroundImage: String, @@ -65,13 +64,13 @@ extension FrontCardCell { if let bgImage = UIImage(named: backgroundImage) { self.backgroundImageView.image = bgImage } - self.titleLabel.text = cardTitle - self.descriptionLabel.text = cardDescription - self.userNameLabel.text = userName - self.birthLabel.text = birth - self.mbtiLabel.text = mbti - self.instagramIDLabel.text = instagramID - self.linkURLLabel.text = linkURL + titleLabel.text = cardTitle + descriptionLabel.text = cardDescription + userNameLabel.text = userName + birthLabel.text = birth + mbtiLabel.text = mbti + instagramIDLabel.text = instagramID + linkURLLabel.text = linkURL } // FIXME: - UIImage 로 넘어올때. 나중에 어떻게 사용할지 정해야함. @@ -83,13 +82,13 @@ extension FrontCardCell { _ mbti: String, _ instagramID: String, _ linkURL: String) { - self.backgroundImageView.image = backgroundImage ?? UIImage() - self.titleLabel.text = cardTitle - self.descriptionLabel.text = cardDescription - self.userNameLabel.text = userName - self.birthLabel.text = birth - self.mbtiLabel.text = mbti - self.instagramIDLabel.text = instagramID - self.linkURLLabel.text = linkURL + backgroundImageView.image = backgroundImage ?? UIImage() + titleLabel.text = cardTitle + descriptionLabel.text = cardDescription + userNameLabel.text = userName + birthLabel.text = birth + mbtiLabel.text = mbti + instagramIDLabel.text = instagramID + linkURLLabel.text = linkURL } } diff --git a/NADA-iOS-forRelease/Sources/Cells/CardCell/FrontCardCell.xib b/NADA-iOS-forRelease/Sources/Cells/CardCell/FrontCardCell.xib index 3a4d2c8a..0ee47127 100644 --- a/NADA-iOS-forRelease/Sources/Cells/CardCell/FrontCardCell.xib +++ b/NADA-iOS-forRelease/Sources/Cells/CardCell/FrontCardCell.xib @@ -100,7 +100,7 @@ - + @@ -125,8 +125,6 @@ - - diff --git a/NADA-iOS-forRelease/Sources/ViewControllers/CardCreation/CardCreationPreviewViewController.swift b/NADA-iOS-forRelease/Sources/ViewControllers/CardCreation/CardCreationPreviewViewController.swift index b3088606..1ecfae28 100644 --- a/NADA-iOS-forRelease/Sources/ViewControllers/CardCreation/CardCreationPreviewViewController.swift +++ b/NADA-iOS-forRelease/Sources/ViewControllers/CardCreation/CardCreationPreviewViewController.swift @@ -13,6 +13,7 @@ class CardCreationPreviewViewController: UIViewController { public var backCardDataModel: BackCardDataModel? public var cardBackgroundImage: UIImage? + private var isFront = true private var cardCreationRequest: CardCreationRequest? // MARK: - @IBOutlet Properties @@ -27,6 +28,8 @@ class CardCreationPreviewViewController: UIViewController { super.viewDidLoad() setUI() + setFrontCard() + setGestureRecognizer() } @IBAction func touchCompleteButton(_ sender: Any) { guard let frontCardDataModel = frontCardDataModel, let backCardDataModel = backCardDataModel else { return } @@ -72,30 +75,58 @@ extension CardCreationPreviewViewController { completeButton.setBackgroundImage(UIImage(named: "enableButtonBackground"), for: .normal) completeButton.setTitleColor(.white, for: .normal) } - setFrontCardWith() } - - private func setFrontCardWith() { + private func setFrontCard() { guard let frontCard = FrontCardCell.nib().instantiate(withOwner: self, options: nil).first as? FrontCardCell else { return } frontCard.frame = CGRect(x: 0, y: 0, width: cardView.frame.width, height: cardView.frame.height) - // FIXME: - 갤러리 추가/주석해제 - guard let frontCardDataModel = frontCardDataModel else { return } - frontCard.initCell(cardBackgroundImage, frontCardDataModel.title, frontCardDataModel.description, frontCardDataModel.name, frontCardDataModel.birthDate, frontCardDataModel.mbti, frontCardDataModel.instagramID, frontCardDataModel.linkURL) + guard let frontCardDataModel = frontCardDataModel else { return } + frontCard.initCell(cardBackgroundImage, frontCardDataModel.title, frontCardDataModel.description, frontCardDataModel.name, frontCardDataModel.birthDate, frontCardDataModel.mbti, frontCardDataModel.instagramID, frontCardDataModel.linkURL) - // FIXME: - dummy data -// frontCard.initCell("card", "nada", "NADA의 짱귀염둥이 ㅎ 막이래~", "개빡쳐하는 오야옹~", "1999/05/12", "ENFP", "yaeoni", "github.com/yaeoni") cardView.addSubview(frontCard) } + private func setGestureRecognizer() { + let swipeLeftGestureRecognizer = UISwipeGestureRecognizer(target: self, action: #selector(transitionCardWithAnimation(_:))) + swipeLeftGestureRecognizer.direction = .left + self.cardView.addGestureRecognizer(swipeLeftGestureRecognizer) + + let swipeRightGestureRecognizer = UISwipeGestureRecognizer(target: self, action: #selector(transitionCardWithAnimation(_:))) + swipeRightGestureRecognizer.direction = .right + self.cardView.addGestureRecognizer(swipeRightGestureRecognizer) + } + + // MARK: - @objc Methods - private func setBackCardWith() { - guard let backCard = BackCardCell.nib().instantiate(withOwner: self, options: nil).first as? BackCardCell else { return } - guard let backCardDataModel = backCardDataModel else { return } - backCard.frame = CGRect(x: 0, y: 0, width: cardView.frame.width, height: cardView.frame.height) + @objc + private func transitionCardWithAnimation(_ swipeGesture: UISwipeGestureRecognizer) { + if isFront { + guard let backCard = BackCardCell.nib().instantiate(withOwner: self, options: nil).first as? BackCardCell else { return } + guard let backCardDataModel = backCardDataModel else { return } + backCard.frame = CGRect(x: 0, y: 0, width: cardView.frame.width, height: cardView.frame.height) + backCard.initCell(cardBackgroundImage, backCardDataModel.isMincho, !backCardDataModel.isMincho, backCardDataModel.isSoju, !backCardDataModel.isSoju, backCardDataModel.isBoomuk, !backCardDataModel.isBoomuk, backCardDataModel.isSauced, !backCardDataModel.isSauced, backCardDataModel.firstTMI, backCardDataModel.secondTMI, backCardDataModel.thirdTMI) + + cardView.addSubview(backCard) + isFront = false + } else { + guard let frontCard = FrontCardCell.nib().instantiate(withOwner: self, options: nil).first as? FrontCardCell else { return } + + frontCard.frame = CGRect(x: 0, y: 0, width: cardView.frame.width, height: cardView.frame.height) + guard let frontCardDataModel = frontCardDataModel else { return } + frontCard.initCell(cardBackgroundImage, frontCardDataModel.title, frontCardDataModel.description, frontCardDataModel.name, frontCardDataModel.birthDate, frontCardDataModel.mbti, frontCardDataModel.instagramID, frontCardDataModel.linkURL) + + cardView.addSubview(frontCard) + isFront = true + } + if swipeGesture.direction == .right { + UIView.transition(with: cardView, duration: 1, options: .transitionFlipFromLeft, animations: nil) { _ in + self.cardView.subviews[0].removeFromSuperview() + } + } else { + UIView.transition(with: cardView, duration: 1, options: .transitionFlipFromRight, animations: nil) { _ in + self.cardView.subviews[0].removeFromSuperview() + } + } - // FIXME: - dummy data - backCard.initCell("card", false, true, false, true, false, true, false, true, "티엠아이", "모쓰지", "모르겠다") - cardView.addSubview(backCard) } // MARK: - Network