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

<2주차> 자신만의 Custom View를 만들려면 어떻게 해야하는지 설명하시오 #9

Closed
namsoo5 opened this issue Nov 7, 2020 · 8 comments

Comments

@namsoo5
Copy link
Collaborator

namsoo5 commented Nov 7, 2020

No description provided.

@iJoom
Copy link
Collaborator

iJoom commented Nov 12, 2020

@iJoom iJoom added the 인준 label Nov 12, 2020
@namsoo5 namsoo5 added the 남수 label Nov 12, 2020
@namsoo5
Copy link
Collaborator Author

namsoo5 commented Nov 12, 2020

  1. Xib를 이용해서 구현
  2. 코드로만 Class 구현

참고링크

@dongminyoon
Copy link
Collaborator

dongminyoon commented Nov 12, 2020

1. Xib 이용해서 별도의 Storyboard처럼 관리 가능

  • Xib을 생성하고 또한 별도의 UIView을 상속받은 Class을 생성한다. 그리고 Xib에서 owner로 해당 클래스를 임명하고 커스텀 클래스 내에서 초기화 시, Xib 파일을 불러와 view로 임명하는 코드 추가를 하고 원하는 작업들을 Storyboard와 동일하게 수행하면 된다.

2. UIView을 상속해서 코드로만 구현

  • UIView을 상속받는 클래스를 생성해 정말 코드로만 원하는 작업들을 설정합니다.

@khyunjiee
Copy link
Member

@5anniversary
Copy link
Collaborator

  • 새로운 구조체, 클래스를 만들어 코드를 작성해 구현
  • UIViewController에서 Extension을 생성해 코드를 이용해 구현
  • UIView Class를 상속받아 코드 혹은 xib파일을 이용해 구현

@choidam
Copy link
Member

choidam commented Nov 13, 2020

  • xib 파일 생성해서 storyboard 처럼 사용
  • 템플릿 클래스를 커스텀해서 상속받아 사용

@choidam choidam added the label Nov 13, 2020
@Juhyeoklee
Copy link
Collaborator

UIView를 상속한 Class를 작성해야한다. 화면을 구성하는 방식에는 두가지가 존재하는데

  1. Xib를 활용하는 방식
  2. 코드를 통해 구현하는 방식

1의 방식은 Xib를 통해 스토리보드 처럼 화면의 컴포넌트를 드래그 앤 드롭으로 쉽개 작성할 수있다. 하지만 이 작업은 Xib파일과 커스텀 클래스를 연결해주는 작업이 꼭 필요하다.

2의 방식은 모든 컴포넌트를 코드를 통해 구성하는 방식이다. 이는 코드의 양이 엄청나게 늘어나는 단점이 있지만 차지하는 용량자체가 적고 에러핸들리이 편한 장점이 있다.

@elesahich
Copy link
Collaborator

elesahich commented Nov 13, 2020

Custom View 만들기 :

  1. Xib 방식
  2. 코드구현 방식

두가지 목적이 있고 내 생각에 두개의 용도가 조금 다르다고 생각
팝업뷰나 커스텀 AlertView 뭐 이런것들은 Xib로도 그릴 수 있지만 애니메이션 넣고 하기에는 코드베이스가 더 좋은것 같습니당
특히 애니메이션을 포기할수 없는 나로서는 주로 커스텀뷰는 코드로 짜는 편
CollectionView, TableView를 짜는 경우에는 NSObject, 그냥 뷰인 경우에는 UIView 등의 UIKit 컴포넌트를 상속받아서 사용합니다
아 그리고 코드베이스는 상속이 됩니다 BaseView를 만들어두고 상속하면 얼마나 편한지 모릅니다

Xib는 미니 스토리보드이므로, ViewController 중간에 커스텀 요소가 있는 경우에 사용을 하는게 편합니다
조금 복잡한 뷰가 있거나, 불가피하게 같은 뷰를 여러 사람이 작업하는 경우에 사용하면 편하겠습니다
예를 들자면 버튼을 눌렀을때 해당자리에서 드롭다운이 나오는 경우는 스토리보드 베이스인 Xib로 작업하는게 조금 더 편할것 같습니다

@elesahich elesahich added the 승호 승호 label Nov 13, 2020
@namsoo5 namsoo5 closed this as completed Nov 13, 2020
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

8 participants