Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[issue] 숨겨두었던 재사용 관련 이슈(부끄) #2

Open
SHcommit opened this issue Jul 23, 2023 · 0 comments
Open

[issue] 숨겨두었던 재사용 관련 이슈(부끄) #2

SHcommit opened this issue Jul 23, 2023 · 0 comments

Comments

@SHcommit
Copy link
Owner

📌 [상황]

readme.md의 동영상에서 회원가입 할 때 뒤로가기를 두 번 이상 누르지 않았습니다. 아래의 문제가 있었기 때문이죠,,

// 참고로 회원가입 은 확인 버튼을 통해 다음 화면으로 이동하는데 이때 한 화면은 한개의 Cell입니다. (최대한 쉽고 빠르고 간편하고 재사용 할 수 있게 만들려했기 때문입니다.)

📸 [문제 영상: 재사용 큐 덕분에 맨 처음 indexPath.row == 0의 cell은 텍스트 필드가 하나 지만, indexPath ==3일 때 텍스트 필드가 2개가 인 cell이 꺼내지는 경우 OTL]

🚨 [문제: 재사용 큐 관련]

그 이유는 사실 회원가입 페이지를 만들 때 컬랙션 뷰를 통해서 + 재사용 큐에 cell을 등록하고 사용했는데, 이상하게 3번째 완료를 눌러야 보이는 비밀번호 2개의 텍스트 입력 필드가 나타났을 때 뒤로가기 3번을 누르게 된다면 아이디를 입력하는 Cell에서 비밀번호의 양식이 나왔던 경우입니다....

이 문제는 단순히 textfield의 text == ""처리를 하는 것과 상관이 없었고 23.07.23 오늘에서야 문제를 알았습니다. 재사용 큐에서 꺼내질 때 문제였던 것입니다 : )

제가 회원가입을 토스의 1thing 1page..지금은 또 로그인이 아래서 위로 stack형식으로 쌓이는 것으로 바뀌었던데,,ㅠㅠ 꼭 해보고싶은거 하니까 또 토스에서 만든 아래서 위로 올라가는 로그인이 만들어지고 싶네요 : - /

✨ [문제: 기능 소개, 아쉬운 점]

예전에 인스타그램을 혼자 만들 때 이 방법말고 더 자연스러운 회원가입 없나 하다 토스의 1thing 1page를 알게 됬고.. 이를 따라 만들려 할 때 바로 컬랙션 뷰가 떠올랐습니다. 제 경우 최대한 Cell을 재사용하기 쉽게 비밀번호 만들기와 재확인 의 경우에만 옵셔널 처리되었던 재확인 비밀번호의 인스턴스를 해제했고, 다시 뒤로갈 때 텍스트 필드가 2개인 Cell이 재사용큐에 enqueue됬다는 것입니다. 그렇지만 이때 prepareForReuse와 재사용 큐의 원리를 몰라 text == ""처리만 해줬던 기억이 납니다ㅎㅎㅎ... 원래대로라면 특수한 경우(비번 + 비번 확인) 에만 추가가 되는 뷰의 값을 prepareForReuse에서 nil로 처리하면 위 문제를 해결할 수 있고 페이지뷰 + 각각의 화면을 VC로 했다면?! 재사용 큐를 사용하지 않아 해결 방법이 될 것 같다는 생각이 들었습니다.

그리고 이걸 만들면서 (약 19일 밖에 시간이 없었기에) 빨리해야했지만 그러면서도 고민은 뒤로갔을 때 prepareForReuse에서 텍스트나 사용안하는 버튼, 텍스트 필드가 어떤 텍스트필드인지 보여주는 label을 초기화 하는 거 ok! 근데 사용자가 입력한 값은? 어떻게 처리해야 할까 생각했고 NSCaching이 떠올랐습니다. 근데 시간이 없어서 패스한 기억이 남습니다...

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant