From 683696c47df89692e6a0b321db395491a0b894bf Mon Sep 17 00:00:00 2001 From: Yurim Date: Fri, 25 Oct 2024 16:46:56 +0900 Subject: [PATCH] =?UTF-8?q?[Feat]=20#6=20-=20FeedbackWriteView=20=EC=99=84?= =?UTF-8?q?=EC=84=B1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Week2/View/FeedbackWriteView.swift | 73 +++++++++++++++++++ 1 file changed, 73 insertions(+) diff --git a/35-seminar/Presentation/Week2/View/FeedbackWriteView.swift b/35-seminar/Presentation/Week2/View/FeedbackWriteView.swift index 036447b..612567b 100644 --- a/35-seminar/Presentation/Week2/View/FeedbackWriteView.swift +++ b/35-seminar/Presentation/Week2/View/FeedbackWriteView.swift @@ -6,10 +6,21 @@ // import UIKit +import SnapKit class FeedbackWriteView: UIView { // MARK: - Properties + private let titleLabel = UILabel() + let cancelButton = UIButton() + let sendButton = UIButton() + + let tapToRateStarStackView = StarStackView() + private let tapToRateGuideLabel = SubtitleLabel() + + let feedbackStackView = UIStackView() + let feedbackTitleTextField = UITextField() + let feedbackTextView = UITextView() // MARK: - Methods override init(frame: CGRect) { @@ -24,14 +35,76 @@ class FeedbackWriteView: UIView { } private func setUI() { + self.backgroundColor = .systemBackground + + titleLabel.configureLabel(size: 17, weight: .medium, text: "리뷰 작성하기") + + cancelButton.configureButton(title: "취소", fontSize: 17, fontWeight: .regular, removeContentInsets: true) + + sendButton.configureButton(title: "보내기", fontSize: 17, fontWeight: .medium, removeContentInsets: true) + + tapToRateGuideLabel.configureLabel(color: .secondaryLabel, size: 10, weight: .regular, text: "별점을 탭하여 평가하기") + feedbackStackView.axis = .vertical + feedbackStackView.spacing = 10 + + feedbackTitleTextField.placeholder = "제목" + feedbackTitleTextField.setContentHuggingPriority(.defaultHigh, for: .vertical) + + feedbackTextView.text = "리뷰(선택사항)" + feedbackTextView.textContainerInset = .zero + feedbackTextView.textContainer.lineFragmentPadding = 0 + feedbackTextView.font = .systemFont(ofSize: 15, weight: .regular) } private func setHierarchy() { + [cancelButton, sendButton, titleLabel, tapToRateStarStackView, tapToRateGuideLabel, feedbackStackView].forEach { + self.addSubview($0) + } + [feedbackTitleTextField, feedbackTextView].forEach { + let border = BorderView() + feedbackStackView.addArrangedSubview(border) + feedbackStackView.addArrangedSubview($0) + + border.snp.makeConstraints { + $0.horizontalEdges.equalToSuperview() + $0.height.equalTo(0.4) + } + } } private func setConstraints() { + titleLabel.snp.makeConstraints { + $0.centerX.equalToSuperview() + $0.top.equalToSuperview().offset(20) + } + + cancelButton.snp.makeConstraints { + $0.leading.equalToSuperview().offset(20) + $0.top.equalTo(titleLabel) + } + + sendButton.snp.makeConstraints { + $0.trailing.equalToSuperview().offset(-20) + $0.top.equalTo(titleLabel) + } + + tapToRateStarStackView.snp.makeConstraints { + $0.top.equalTo(titleLabel.snp.bottom).offset(30) + $0.centerX.equalToSuperview() + $0.width.equalTo(200) + } + + tapToRateGuideLabel.snp.makeConstraints { + $0.top.equalTo(tapToRateStarStackView.snp.bottom).offset(2) + $0.centerX.equalToSuperview() + } + feedbackStackView.snp.makeConstraints { + $0.top.equalTo(tapToRateGuideLabel.snp.bottom).offset(2) + $0.horizontalEdges.equalToSuperview().inset(20) + $0.bottom.equalTo(self.safeAreaLayoutGuide) + } } }