강의

멘토링

로드맵

인프런 커뮤니티 질문&답변

초급자님의 프로필 이미지
초급자

작성한 질문수

앨런 iOS 앱 개발 (15개의 앱을 만들면서 근본원리부터 배우는 UIKit) - MVVM까지

활용-3 앱 / 코드로 UI 짜기 (활용 앱20강)

활용-3 앱 /코드로 UI 짜기 영상에서 문의 드립니다.

작성

·

213

0

영상 11분 20초 경 lazy var를 이용해 view.addSubview(emailTextFieldView)를 사용할 수 있다고 하셨는데 이 부분이 UIViewControllerview를 카리키는것이 아닌 클로저 내부에서 이미 선언한 let view = UIView()의 변수 아닌가요? 해당 코드가 왜 정상적으로 동작하는지 영상이 잘못된거 같은데요. 제가 잘못 이해하고 있다면 다시 설명 부탁드립니다.

퀴즈

50%나 틀려요. 한번 도전해보세요!

스토리보드를 사용하지 않고 코드로만 iOS 앱의 UI를 구성할 때의 주된 방식은 무엇일까요?

스토리보드 파일에 UI 요소를 추가합니다.

코드 상에서 UIView와 같은 객체를 생성하고 추가합니다.

Interface Builder에서 드래그앤드롭으로 배치합니다.

Main.storyboard를 앱의 시작점으로 설정합니다.

답변 1

0

앨런(Allen)님의 프로필 이미지
앨런(Allen)
지식공유자

아 네, 초급자 님 정확하게 맞습니다!

제가 설명하면서, self.view라고 붙였어야 하고,
해당 부분에서 에러가 나는 이유를 잘 못설명하고 있어요!

emailTextFieldView속성 내부에서

self.view.addSubview(view)

이렇게 사용하셔야 하고,
lazy var는, 어쨌든 self즉, 뷰컨트롤러가 초기화가 되어야지, self.view에 접근할 수 있습니다.

따라서 뷰(emailTextFieldView) 자체가 뷰컨트롤러(self)의 저장속성에 속해 있기 때문에
뷰(emailTextFieldView)가 초기화 시점(동일 시점 - 뷰컨트롤러가 생성되면서.. 거기에 속한 저장속성도 같이 생성되니)에
lazy var를 붙여야 하는 건 맞는데, 이유는 조금 잘못 설명하고 있긴합니다.
(강의를 찍으면서 중간 중간에 더 설명드리고 싶은 부분이 있어.. 급하게 말씀드리다 보니,
코드 라던지.. 조금씩 잘못된 부분들이 간혹 있습니다.)

다만, 이미 그런 내용들에 대해서 자주하는 질문을 통해서 다시 설명드리고 있으니..
꼭 자주하는 질문을 참고 부탁드립니다 🙏🏻

링크: https://bit.ly/3MR3Mr6



감사합니다. :)

초급자님의 프로필 이미지
초급자

작성한 질문수

질문하기