2.8 Introduction to UIKit

Joohyun·2022년 4월 9일
0

UIKit

  • 유저 인터페이스를 정의하고, 사용자의 입력에 따른 이벤트를 다루는 등 iOS 앱의 동작을 관리하는 핵심 프레임워크

UIView (view)

  • UIKit 내부에 존재하는 모든 시각적 요소를 다루는 class

  • UILabel, UIImageView 등 여러 subclass들로 구성되어있다.

  • 화면은 여러 view의 겹으로 구성되어 있다.

    • child view: view 내부에 속해있는 view

    • parent view: 하나 이상의 view를 포함하고 있는 view
      ex) table view - parent view, table 내부 cell - child view

  • default background color

    • 흰색: Interface Builder에서 view를 추가할 경우

    • 투명: code를 통해 view를 생성할 경우

1. UILabel

  • 정보를 전달하는 정적인 텍스트를 저장

2. UIImageView

  • 사진 또는 움직이는 이미지를 담는 view

3. UITextView

  • 수정이 가능한 여러 줄의 텍스트를 담을 수 있다. (스크롤링 가능)
    ex) 메세지 본문

4. UIScrollView

  • view의 크기보다 더 큰 내용물을 저장할 수 있다. (일반적으로, 기기의 화면 크기보다 더 큰 정보를 저장할 때 쓰인다.)

  • 가로 또는 세로의 스크롤을 통해 사용자가 상호작용한다.

5. UITableView

  • 세로로 스크롤 할 수 있는 여러 행에 데이터가 존재한다.
    ex) Mail App의 사서함 안의 mail 리스트

6. UIToolbar

  • 주로 화면의 하단에 위치하며, bar button item이라 불리는 한개 이상의 버튼이 존재한다.

  • 주어진 view 내부에서 도구, 행동을 선택할 수 있다.

7. UINavigationBar

  • 주로 화면의 상단에 위치하며, 앱의 주요 내용을 표현한다.

  • 뒤로가는 버튼이 존재한다.

8. UITabBar

  • 간편하게 앱의 다른 view들로 이동할 수 있게 해준다.

  • 주로 tab bar controller와 함께 사용한다.

    • view controller는 tab bar에 보여지는 텍스트와 이미지를 정의하는 UITabBarItem property를 갖고 있다.

    • 스토리보드를 통해 tab bar controller의 viewControllers property와 UITabBarItem property를 서로 연결해준다.

UIControl

  • UIKit내부에 존재하는 control class

  • UIButton, UITextField 등 여러 subclass들로 구성되어있다.

  • 사용자가 control을 이용하여 상호작용을 하면, 해당 control의 control event가 호출된다.

  • Interface Builder에서 control을 세팅한 후, @IBAction을 통해 구체적인 control event를 정의한다.

  • 보통 Primary Action Triggered(UIControl.Event.primaryActionTriggered) control event를 사용한다.

    • 버튼을 터치하거나, control의 값이 바뀔 때 호출된다.

1. UIButton

  • 버튼을 터치하면 control event가 발생한다.

  • 버튼을 터치하는 다양한 단계에서 event가 수행될 수 있다.

    • 버튼을 터치한 순간
    • 버튼을 누르고 있는 상태
    • 손가락을 들어올리기 전 버튼 밖으로 드래그해 버튼 터치를 중단

2. UISegmentedControl

  • 여러개의 segment의 수평 집합이다.

  • 각 segment는 사용자에게 제한된 선택지를 보여준다.
    ex) 지도 어플은 지도, 로드뷰, 위성지도로 3가지 화면 모드를 허용한다.

  • 선택된 segment가 바뀔 때마다 event가 호출된다.

3. UITextField

  • 한줄의 간단한 텍스트의 입력을 지원한다.

  • 사용자에게 입력값을 얻어 해당 입력값에 따라 코드를 수행한다.

  • 사용자가 'Return', 'Done'버튼을 누르거나 텍스트를 수정할 때 event가 호출된다.

4. UISlider

  • 볼륨, 화면 밝기 등 값을 시작값으로부터 슬라이더를 움직이며 최소값과 최댓값 사이에서 연속적으로 값을 변화시킨다.

  • 슬라이더의 값이 변경될 때마다 event가 호촐된다.

5. UISwitch

  • 설정 앱 등에서 옵션을 키거나 끄는데에 사용된다.

  • 스위치의 값이 변경될 때마다 event가 호출된다.

6. UIDatePicker

  • 날짜와 시간을 효율적으로 선택할 수 있도록 한다.

  • 선택된 날짜 또는 시간 값이 변경될 때마다 event가 호출된다.

UIViewController

  • UIKit내부의 view를 제어하는 class

    • child view 세팅

    • view의 화면을 제어

    • 사용자의 상호작용에 대한 반응 등

  • ViewController

    • UIViewController의 subclass

    • storyboard의 화면과 각각 연결되어 각자의 화면을 제어한다.

    • 내부의 view property는 storyboard 화면의 parent view를 뜻하는 UIView의 인스턴스이다.

profile
IOS Developer

0개의 댓글