-
Notifications
You must be signed in to change notification settings - Fork 36
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
연락처 관리 앱 [STEP3] Howard,Mond #41
base: 2_Howard
Are you sure you want to change the base?
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
두분 마지막 스텝 정말 고생하셨습니다!
궁금한 사항
- 연락처 리스트 화면에서, 이름,나이,연락처 정보에 Dynamic type을 설정했을 때, text의 크기를 키우면 label 의 text 가 ... 말줄임으로 되는데, 저희가 원했던 것은, text가 커져서 container의 크기를 초과되는 상황이 오면 ...으로 처리되는게 아니라, 텍스트의 크기를 더이상 키우지 않게하여 ... 처리가 안되도록 하고 싶은데 어떻게 해야될 지 방법을 못찾았습니다. 어떻게 해결해야 할까요?
➡️ label numberOfLines를 아직 처리를 안하신 것 같아서 이 부분 한번 점검해보면 좋을 것 같습니다!
Dynamic type을 코드로 구현하는것과, storyboard를 통해서 구현하는것의 장단점은 어떤것인지, 현업에서는 주로 어떤 방식으로 구현하는지 궁금합니다!
➡️ Dynamic type 에 대한 질문을 해주셨지만 결국 이 질문은 코드와 스토리보드, xib 선택 이슈로 귀결된다고 생각이 듭니다. 명확한 정답은 없습니다. 근데 다만 이번에 구현하신 것처럼 스토리보드에 tableView와 cell을 모두 구현하면, 이 tableView를 다른 곳에서 재사용하거나 특정 뷰컨트롤러 스토리보드에 옮기는 것은 번거로워집니다. 즉, 유지보수가 어려워지죠.
그래서 현업에서도 조직마다 스토리보드, 코드, xib를 어느정도 섞어서 사용하는지는 다 다르다는 점을 참고해주시고, 유지보수가 잘되는 쪽으로 고민을 해보면 좋을 것 같습니다!
ContactManager/ContactManager/Controller/CustomTableViewCell.swift
Outdated
Show resolved
Hide resolved
|
||
private var contactBook = ContactBook() | ||
private var searchFilterdList: [Person] = [] |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
이렇게 searchFilteredList를 놔두는 것도 괜찮지만, 추후에 코드들이 많아지면 복잡해질 수 있습니다.
기존 연락처와 같이 데이터들을 관리할 객체를 생성해서 처리하는건 어떨까요?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
여기 부분은 오늘 시간이 부족해서 완료하지 못했습니다. 새로 알게된 문제가 하나 있었는데, 검색을 통해서 나온 리스트를 삭제했을 때, 문제가 발생하더라구요.. 그래서 말씀해주신대로 따로 객체를 생성해서 처리하면 이부분도 해결될 것 같다 라고 생각했는데, 일단.. 오늘은 시간이 부족해서 이후에 다시 만들어서 해보도록 하겠습니다!
let personContact = contactBook.bringPersonContact(indexPath) | ||
|
||
if isSearching { | ||
cell.name.text = searchFilterdList[indexPath.row].name | ||
cell.age.text = searchFilterdList[indexPath.row].age | ||
cell.digits.text = searchFilterdList[indexPath.row].digits | ||
} else { | ||
cell.name.text = personContact.name | ||
cell.age.text = personContact.age | ||
cell.digits.text = personContact.digits | ||
} |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
이 부분은 제가 위에서 말한 데이터 관리하는 객체를 변경하신다면 변경해주시고
다음으로 cell에 있는 UI 요소들을 직접 가져와서 데이터를 주입시키는 것보다 뷰 요소인 cell에게 데이터를 넘겨서 뷰를 업데이트 하는 흐름으로 개선을 하면 좋을 것 같아요.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
여기는 cell 에게 데이터 넘겨줘서 업데이트하도록 변경하였습니다!
|
||
import UIKit | ||
|
||
class CustomTableViewCell: UITableViewCell { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
CustomTableViewCell이라고 추상적인 클래스명을 갖는 것보다는, 어떤 Cell을 나타내는지 간단한 네이밍을 해주면 좋을 것 같아요!
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
9a08713
연락처 정보를 담고있는 TableViewCell이라서 ContactInformationTableViewCell
로 네이밍 변경하였습니다. Cell의 Identifier도 ContactInformationCell
로 변경하였습니다.
버드 : @yeji1008, @JEON-Sungsu
리뷰어: @corykim0829
STEP3 - 연락처 삭제 / Cell Layout / Dynamic Type
i. 검색기능 통해 연락처 목록 내의 특정 연락처만 테이블뷰에 남길 수 있도록 구현해 주세요.
ii. Cell을 사용자정의하여 원하는 레이아웃으로 표현하도록합니다. (예시와 똑같지 않아도 됩니다.)
iii. Dynamic Type을 활용하여 시스템 설정에 따라 앱 글자 크기가 변경될 수 있도록 구현해주세요.
이번 스텝 수행 중 핵심 경험
프로젝트 구조
프로젝트 동작 화면
코드 설명
localizedCaseInsensitiveContains
을 사용하여, 입력값이 대/소문자 구분없이 검색이 가능하도록 만들었습니다.프로젝트를 진행하며 고민한 내용
localizedCseInsensitiveContains
를 사용하여 구현하였습니다.궁금한 사항
참고 링크
TableView Cell 삭제
UITableViewCell Custom
Dynamic Type
UISearchController