-
Swift 로 iOS 앱 만들기- 02 : 기본 셋팅Swift 2019. 6. 26. 11:57
Window를 만드는 법
01. 디버그로 window 확인해보기
전 강의까지의 상태에서 런을 한 후 디버깅을 해보면 다음과 같이 빈 화면이 나온다.
디버깅은 상단 패널 중 아래 부분을 나타내는 아이콘을 클릭한 후
Debug View Hierarchy 아이콘을 클릭하면 된다.
그러면 다음과 같이 빈 화면이 나오는 것을 볼 수 있는데,
이것은 우리가 메인 스토리보드를 날리고, 아직 윈도우를 만들어 주지 않았기 때문이다.
02. window 만들기
그럼, 이제 window를 만들어서 저 화면을 채워보자.
window를 만들어주기 위해 AppDelegate.swift 파일로 돌아간다. 그리고 다음과 같이 입력한다.들어가기에 앞서, Swift 문법에 대해서 살짝 보자면,
-
객체를 만들 때는 ()
-
class는 무조건 앞 글자가 대문자, 변수는 소문자. 단 단어별 연결일 땐 단어 앞 글자는 대문자로 쓴다.
-
스트링을 타입으로 가지는 변수 x의 값은 3이다. 라고 할때, 다음과 같이 쓴다.
r x : String = "3" //var 변수이름 : 타입 = 값
-
var window: UIWindow? 에서 "?" 는 nil일 수도있고, 아닐 수도 있다 를 뜻한다.
(nil은 값의 부재라고 생각하면 된다.)
즉, 변수의 값이 있을 수 도 있고 없을 수도 있을 때 쓰는 것이 '?' 이고, 이것을 Optional 이라 부르는데, 그 안에는 '?' 말고도 '!'가 있다. (Optional에 대해서는 추후 더 공부를 한 후에 정리를 할 예정이다.)
자 그러면 var window: UIWindow?를 해석해보면,
변수 window는 UIWindow가 오는데, 그 값은 nil 일 수도 있고, 아닐 수도 있다를 뜻한다.
따라서, 아래 func 밑에 변수 window의 값을 설정해 준다.
각 코드들은 주석으로 설명을 달아 놓았는데, 그중 마지막에 코드에 대해서 설명하자면
window?.rootViewController = ViewController()
앱을 보면 평면으로 보이지만 사실 겹겹이 쌓여있는 구조이다.
이미지 출처 : https://github.com/amraboelela/myos/wiki/CALayer
이렇게 window 위에 view들이 쌓이게 되는데,
그때 window랑 가장 근접하게 있는 view가 rootViewController이며,
나는 현재 ViewController하나밖에 없기 때문에그것을 값으로 입력해준 것이다.코드 입력 후 런을 돌린 다음에 디버그를 다시 해보면 이제는 다음과 같이 두개의 층이 쌓여있는 모습이 보인다.
드디어 window 와 그 위의 ViewController 가 보인다!
아직 ViewController에는 아무것도 하지 않았기에 투명하게 나온다. 두 개의 층을 보니 신기하다.
03. ViewController에서 배경색 설정하기
이제 디버그에서 창이 두 개가 쌓여있는 것을 확인했다.
이제는 아직도 어두운 화면을, 애가 원하는 색의 화면으로 바꿔보자.
ViewController.swift에 가서 다음과 같이 입력한다.
self는 ViewController 자신을 말한다.
ViewController는 아까 디버그 했을 때보이는 파란색 선, 즉 틀이라면
그 안에 보이는 색 부분(우리가 보는 영역)을 view라고 한다.
따라서 ViewController(self)에서 view(실제 색이 들어가는 영역)의 backgroundColor = UIColor.red 로 설정한 것이다.디버그를 해보면 다음과 같이 나온다.
파란색 틀(ViewController) 안에 빨간색 영역(view)이 생겼다!
빨간색은 너무 눈이 아프니 내가 원하는 연한 파랑색 즉 커스텀 컬러로 바꿔보자.
rgb 컬러로 바꾸는 방법은 다음과 같다.
짠, 내가 원하는 컬러로 색이 바뀌는 것을 볼 수 있다.
Tip
iOS는 RGB 보다 HEX가 컬러가 더 잘나온다고 한다.
더 잘 인식을 한다고 볼 수 있다.
이 부분에 대해서는 추후 공부를 한 후에 정리할 예정이다.
-
* 본 글은 글쓴이가 스터디를 하고 배운 내용을 정리하는 식으로 쓰여지기 때문에 완전 초보자의 글입니다.
틀린 부분이 있을 수도 있고 글의 흐름이 일정하지 않을 수 있습니다.*-
'Swift' 카테고리의 다른 글
Swift - View Controller Life Cycle (생명주기) (0) 2019.07.03 Swift 로 iOS 앱 만들기 - 05 : 코드로 view 생성하기 (Then 사용) (0) 2019.07.03 Swift 로 iOS 앱 만들기 - 04 : SnapKit 사용 / leading 과 trailing (1) 2019.07.02 Swift 로 iOS 앱 만들기 - 03 : Auto Layout 과 SnapKit (0) 2019.06.26 Swift 로 iOS 앱 만들기 - 01 : 기본 셋팅 (0) 2019.06.25 -