Conversation
There was a problem hiding this comment.
확인했습니다 !
닉네임, 소개글 부분은 수정이 잘 된 것 같아요. 코드 로직적인 부분에 대한 질문 남겼으니 확인 부탁드립니다.
근데 장르 선택 부분이 아직 로직이 완성되진 않은 것 같아서요!
이미 선택된 장르를 눌러 deselected하고 다시 selected하면 완료 버튼이 활성화됩니다!
해당 로직 다시 한번 확인해주심 감사하겠습니다!
추가적으로, UI 관련 수정사항은 앞으로 PR 디스크립션 시뮬레이션 이미지나 GIF, 영상 캡쳐해서 넣어주심 수월하게 코드리뷰 가능할 것 같습니다. 또한, 로직이 추가되었을 때 변경사항을 명시해주심 감사하겠습니다!
| } | ||
|
|
||
| introTextView.do { | ||
| $0.font = .Body2 |
There was a problem hiding this comment.
아래 bindData 함수에서 이미 applyWSSFont 함수를 통해 폰트 적용중이므로,
해당 코드 제외해도 좋을 것 같습니다!
|
|
||
| rootView.introTextView.delegate = self |
There was a problem hiding this comment.
위 델리게이트 설정과 동일하게 rx delegate로 설정하시죠!
| // 변경될 텍스트의 실제 렌더링 높이 계산해서 3줄 일 때 최대 높이(maxHeight)를 초과하게 되면 더 써지지 않도록 함 | ||
| let size = CGSize(width: textView.textContainer.size.width, height: .infinity) | ||
| let boundingRect = (updatedText as NSString).boundingRect( | ||
| with: size, | ||
| options: [.usesLineFragmentOrigin, .usesFontLeading], | ||
| attributes: [.font: textView.font as Any], | ||
| context: nil | ||
| ) |
There was a problem hiding this comment.
아하... 텍스트 높이로 계산해서 3줄이 넘어가지 않게 계산한것이군요!
코드 의도가 궁금하긴 합니다만 ...
| let textViewBeginEditing: ControlEvent<Void> | ||
|
|
||
| let genreCellTap: ControlEvent<IndexPath> | ||
| let genreCellTap: Observable<IndexPath> |
|
|
||
| output.nicknameText | ||
| .bind(with: self, onNext: { owner, text in | ||
| owner.rootView.nicknameTextField.text = text |
There was a problem hiding this comment.
nicknameText를 다시 textField에 bind해주신 이유가 궁금합니다!
현재 구조에서는 textField → ViewModel 흐름만으로도 동작하는 것 같아서요.
따로 뷰모델에서 가공된 값을 다시 UI에 전달하는 과정이 없는 걸 봐선 없어도 될 것 같습니다
Simulator.Screen.Recording.-.iPhone.17.Pro.-.2026-03-26.at.18.52.04.mov |
⭐️Issue
🌟Motivation
🌟Key Changes
🌟Simulation
🌟To Reviewer
동작 확인을 한번씩 하긴 했는데 한번 더 확인 부탁드려용
🌟Reference