Skip to content

Commit 81472b8

Browse files
committed
[#45] 마지막 말 애니메이션 구현
1 parent 2cceffa commit 81472b8

File tree

2 files changed

+55
-7
lines changed

2 files changed

+55
-7
lines changed

Deartoday/Deartoday/Screen/Dialog/Controller/DialogViewController.swift

Lines changed: 52 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -66,6 +66,7 @@ final class DialogViewController: UIViewController {
6666
private var isTextViewEditing: Bool = false
6767

6868
private var questions: [String] = DialogDataModel.questions
69+
private var lastMessage: [String] = DialogDataModel.lastMessage
6970
private var answers = [String]()
7071

7172
private var count: Int = 0
@@ -185,7 +186,7 @@ final class DialogViewController: UIViewController {
185186
self.showButton(self.nextButton) { }
186187
}
187188
}
188-
} else {
189+
} else if sender.text == "응, 좋아!"{
189190
hidePastView(self.pastMessageView) { }
190191
hideButton(self.nextButton) {
191192
self.pastMessageView.dialogText = """
@@ -202,6 +203,8 @@ final class DialogViewController: UIViewController {
202203
}
203204
}
204205
}
206+
} else {
207+
print("다음 화면으로 이동")
205208
}
206209
}
207210

@@ -246,15 +249,58 @@ final class DialogViewController: UIViewController {
246249
}
247250
}
248251
default:
249-
print("어쩔")
252+
hideNarrationLabel(guideLabel) {
253+
self.showPresentView(self.presentMessageView) {
254+
self.hidePastView(self.photoImageView) {
255+
UIView.animate(withDuration: 0.5, delay: 0.7, options: .curveEaseOut) {
256+
self.presentMessageView.transform = CGAffineTransform(translationX: 0, y: -154)
257+
self.presentMessageView.alpha = 0
258+
} completion: { _ in
259+
[self.answerTextView, self.underLineView, self.sendButton].forEach {
260+
$0.isHidden = true
261+
}
262+
self.answerTextView.resignFirstResponder()
263+
264+
self.pastMessageView.dialogText = "소중한 말 남겨줘서 정말 고마워."
265+
self.setDialogMessageViewHeight()
266+
267+
self.pastMessageView.snp.updateConstraints {
268+
$0.top.equalTo(self.view.safeAreaLayoutGuide).inset(228)
269+
}
270+
271+
self.showPastView(self.pastMessageView) {
272+
self.hidePastView(self.pastMessageView) {
273+
self.pastMessageView.dialogText = self.lastMessage[0]
274+
self.setDialogMessageViewHeight(topConstant: 228)
275+
276+
self.showPastView(self.pastMessageView) {
277+
self.hidePastView(self.pastMessageView) {
278+
self.pastMessageView.dialogText = self.lastMessage[1]
279+
self.setDialogMessageViewHeight(topConstant: 228)
280+
281+
self.showPastView(self.pastMessageView) {
282+
self.nextButton.text = "다시 오늘을 살아가기"
283+
self.nextButton.snp.updateConstraints {
284+
$0.bottom.equalTo(self.view.safeAreaLayoutGuide).inset(2)
285+
$0.centerX.equalToSuperview()
286+
$0.width.equalTo(363)
287+
}
288+
self.showButton(self.nextButton) { }
289+
}
290+
}
291+
}
292+
}
293+
}
294+
}
295+
}
296+
}
297+
}
250298
}
251299
}
252300

253301
// MARK: - Custom Method
254302

255303
private func setUI() {
256-
view.backgroundColor = .gray
257-
258304
setDateLabel()
259305

260306
DispatchQueue.main.asyncAfter(deadline: .now() + 0.5) {
@@ -401,12 +447,12 @@ final class DialogViewController: UIViewController {
401447
answerTextView.delegate = self
402448
}
403449

404-
private func setDialogMessageViewHeight() {
450+
private func setDialogMessageViewHeight(topConstant: Double = 290) {
405451
[pastMessageView, presentMessageView].forEach {
406452
let height = $0.dialogLabel.intrinsicContentSize.height + 30
407453

408454
$0.snp.updateConstraints {
409-
$0.top.equalTo(self.view.safeAreaLayoutGuide).inset(290)
455+
$0.top.equalTo(self.view.safeAreaLayoutGuide).inset(topConstant)
410456
$0.height.equalTo(height)
411457
}
412458
}
@@ -422,7 +468,6 @@ extension DialogViewController: UITextViewDelegate {
422468

423469
func textViewDidChange(_ textView: UITextView) {
424470

425-
426471
let size = CGSize(width: answerTextView.frame.width, height: .infinity)
427472
let estimatedSize = textView.sizeThatFits(size)
428473

Deartoday/Deartoday/Screen/Dialog/Model/DialogDataModel.swift

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,4 +14,7 @@ struct DialogDataModel {
1414
"과거의 이 순간을 떠올리면 지금은 어떤 감정과 생각이 들어?",
1515
"그렇다면, 너는 이때의 경험으로부터 어떤 점들을 가져가고 싶어?",
1616
"너의 2022년은 어때?"]
17+
18+
static let lastMessage: [String] = ["우리는 어쩌면 10년 후에 “그때가 좋았지” 하면서\n시간을 되돌리고 싶어할 수도 있어.",
19+
"그럼, 지금부터 다시 시작하자.\n너는 지금, 10년 후의 미래에서 되돌아온 거야.\n그러니 행복한 이 순간에 최선을 다해 살 수 있기를 :)"]
1720
}

0 commit comments

Comments
 (0)