[RC_week1-2] 스토리보드 컴포넌트 및 AutoLayout
iOS

[RC_week1-2] 스토리보드 컴포넌트 및 AutoLayout

728x90

스토리보드란?

: iOS 앱의 사용자 인터페이스를 시각적으로 표현하는 콘텐츠 화면, 그리고 화면 간의 연결을 보여주는 도구이다.

+버튼을 누르거나, 컨트롤 + 쉬프트 + l (L의 소문자)를 누르면 나타남

 

61개의 오브젝트들이 존재

 

Objects

 

  • Label

: 하나 이상의 여러 라인을 표시할 수 있는 오브젝트

설정 한 경계 사각형의 크기와 속성에 따라 텍스트를 축소, 줄 바꿈 또는 자를 수 있음.

텍스트의 글꼴, 텍스트 색상, 정렬, 강조 표시 및 음영을 제어 가능

 

  • Button

: 유저의 인터렉션을 통해 커스텀 코드를 실행할 수 있는 제어 오브젝트 

버튼의 제목, 이미지 및 기타 모양 속성을 설정 가능. 각 버튼 상태에 대해 다른 모양을 지정 가능.

 

  • Segmented Control

: 여러 분할로 구성되어 있는 가로형 제어기, 각각의 분할은 분리된 버튼으로 구성되어 있음

단일 또는 다중 선택 또는 명령 목록을 나타낼 수 있다. 각 세그먼트는 텍스트 또는 이미지를 표시 할 수 있지만 둘 다 표시는 불가능

 

  • Text Field

: 인터페이스내에서 편집이 가능한 텍스트 오브젝트

사용자가 텍스트 필드를 탭하면 키보드가 나타남

 

  • Slider

: 연속된 범위의 값으로 부터 단일 값을 선택해서 값을 불러오는 제어 오브젝트, 말 그대로 슬라이더

값 범위를 나타내는 트랙이라는 가로 막대를 표시. 현재 값은 표시기 또는 엄지 손가락의 위치로 표시됨.

사용자는 트랙을 따라 엄지 손가락을 밀어 값을 선택

 

  • Switch

: 이진 선택 제공하는 오브젝트, 말 그대로 스위치

컨트롤을 탭하면 상태를 전환

 

  • Activity Indicator View

: 작업이 진행될 때 표시되는 뷰 오브젝트

완료율을 알 수없는 작업에 대한 처리를 나타내는 데 사용

 

  • Progress View

: 시간에 따른 작업의 진행을 묘사하는 뷰 오브젝트

긴 작업이 진행 중임을 나타내며 완료된 작업의 백분율을 나타냄

 

  • Page Control

: 수평의 연속되는 점으로 표시되는 제어 오브젝트

열려있는 각 페이지에 대해 점을 표시하여 응용 프로그램에서 열려있는 페이지 수를 나타냄. 현재 본 페이지에 해당하는 점이 강조 표시

 

  • Stepper

: 값을 증가하거나 감소시키는 제어 오브젝트

레이블 또는 텍스트 필드와 결합

 

  • Horizontal Stack View

: 행 또는 열로 뷰 모음을 배치하기 위한 간소화된 인터페이스 뷰 오브젝트 ( Axis: Horizontal )

 

  • Vertical Stack View

: 행 또는 열로 뷰 모음을 배치하기 위한 간소화된 인터페이스 뷰 오브젝트 ( Axis: Vertical )

 

  • Table View

: 테이블 타입으로 데이터를 표시할 수 있는 뷰 오브젝트

스크롤 가능한 행 목록을 표시하도록 데이터 소스 및 위임과 조정.

행을 섹션으로 그룹화 할 수 있으며 섹션에는 선택적으로 머리글과 바닥 글이 있을 수 있음

 

  • Table View Cell

: 테이블에서 단일 행의 보여주는 오브젝트

테이블보기에서 셀의 속성과 동작을 정의

테이블 셀의 선택된 상태 모양을 설정, 편집 기능을 지원, 액세서리보기 (예 : 스위치 컨트롤)를 표시, 배경 모양과 내용 들여 쓰기를 지정

 

  • Image View

: 인터페이스에서 단일 이미지 또는 일련의 애니메이션를 표시하는 오브젝트

 

  • Collection View

: 커스텀한 레이아웃을 사용하여 정렬된 데이터 항목 모음을 관리하는 오브젝트

스크롤 가능한 셀 컬렉션을 표시하도록 데이터 원본 및 위임과 조정

 

  • Collection View Cell

: Collection View에서 한 셀을 나타내는 단일 보기 오브젝트

레이블 및 이미지보기와 같은 하위보기로 채워서 모양을 제공

 

  • Collection Reusable View

: Collection View 안에서 재사용 가능한 뷰의 속성이나 행동을 정의하는 오브젝트 ( 헤더나 푸터 )

 

  • Text View

: 사용자가 텍스트 보기를 탭하면 키보드가 나타나는 오브젝트

 

  • Scroll View

: 애플리케이션 창의 크기보다 큰 콘츠를 표시하는 메커니즘 제공, 스와이프 등을 활용해서 스크롤 할 수 있는 오브젝트

 

  • Date Picker

: 날짜와 시간을 선택할 수 있도록 여러개의 회전 바퀴를 사용하는 오브젝트

 

  • Picker View

: 구성 요소가 행으로 구성이 되어 휠을 통해 선택할 수 있는 오브젝트

 

  • Visual Effect View with Blur

: 다른 뷰 뒤에서 사용자 정의 가능한 혼합 효과를 제공하는 오브젝트

 

  • Visual Effect View with Blur and Vibrancy

: 흐린 배경을 제공 생생한 효과를 제공하는 오브젝트

 

  • Map Kit View

: 지도를 포함할 수 있는 인터페이스를 제공하는 오브젝트

 

  • MetalKit View

: 3D Model, Texture등 Metal Drawing 어플리케이션을 만드는데 필요한 노력을 단순화하는 오브젝트

 

  • GLKit View

: OpenGL을 활용한 어플리케이션을 만드는데 필요한 노력을 단순화하는 오브젝트

 

  • SceneKit View

: SceneKit 프레임워크를 이용해서 3D장면을 표시 할 수 있게 해주는 오브젝트

 

  • SpriteKit View

:SpriteKit 프레임워크를 이용해서 2D장면을 표시 할 수 있게 해주는 오브젝트

 

  • ARKit SceneKit View

: ARkit 및 SceneKit 프레임워크를 이용해서 카메라 배경에 3D 장면을 표시 할 수 있는 오브젝트

 

  • ARKit SpriteKit View

: ARkit 및 SpriteKit 사용할 수 있게 허용해주는 오브젝트

 

  • Web View (deprecated)

: WKWebView가 최신이고 이것은 Legacy 예전 버젼을 지원하기 위해 있는 오브젝트

 

  • WebKit View

: 웹 콘텐츠를 삽입하고 보여줄 수 있는 오브젝트

 

  • Reality AR View

: RealityKit 프레임워크를 사용하여 3D 대화형 AR장면을 표시할 수 있는 오브젝트

 

  • View

: 뷰 계층 구조에서 부모의 사각형 영역 내에서 그리기, 하위 뷰 레이아웃 및 이벤트 처리를 위한 구조를 제공하는 오브젝트

 

  • Container View

: 하위 뷰 컨트롤러를 호스팅하기 위해 뷰 컨트롤러의 뷰 계층 구조 내에서 영역을 정의하는 오브젝트

 

 

  • Navigation Bar

: 상태 표시줄 바로 아래에 탐색 표시줄을 표시하는 메커니즘을 제공하는 오브젝트

 

  • Navigation Item

: 항목이 스택의 맨 위에 있을 때 탐색 모음에 표시되는 내용과 뒤로 항목 일 때 표시되는 방법을 포함하여 UINavigationBar 개체 스택의 탐색 항목에 대한 정보를 캡슐화

 

  • Toolbar

: 화면 하단에 도구 모음을 표시하는 메커니즘을 제공하는 오브젝트

 

  • Bar Button Item

: 각 막대 버튼 항목은 버튼과 유사하게 작동하는 오브젝트

 

  • Fixed Space Bar Button Item

: 인접한 도구 모음 항목을 고정 된 공간으로 분리하는 오브젝트

 

  • Flexible Space Bar Button Item

: 인접한 도구 모음 항목을 유연한 공간으로 분리하는 오브젝트

 

  • Tab Bar

: 앱에서 보기, 하위 작업이나 모드를 선택하기 위한 막대를 표시

 

  • Tab Bar Item

: UITabBar의 항목을 나타냅니다. 항목에 대해서 제목과 이미지가 있는 오브젝트.

 

  • View Controller

: 툴바, 내비게이션바, 응용 프로그램 뷰에 대한 view-management 기능을 제공하는 오브젝트

 

  • Storyboard Reference

: 스토리 보드를 여러 파일로 분해 할 수 있는 오브젝트

 

  • Navigation Controller

: 뷰 컨트롤러의 스택과 내비게이션바를 관리할 수 있는 오브젝트

 

  • Table View Controller

: 올바른 차원과 사이즈 조절이 가능한 마스크를 통해 인스턴스를 생성하고 tableView를 관리하는 오브젝트

 

  • Collection View Controller

: 올바른 차원과 사이즈 조절이 가능한 마스크를 통해 인스턴스를 생성하고 collectionView를 관리하는 오브젝트

 

  • Tab Bar Controller

: 각각 탭 표시줄 항목을 나타내는 뷰 컨트롤러 세트를 관리하는 오브젝트

 

  • Split View Controller

: 마스터 View 컨트롤러에 디테일 인터페이스를 사용할 때 주로 사용하는 오브젝트.

 

  • Page View Controller

: 데이터 소스와 델리게이트를 통해 뷰 컨트롤러 시퀀스를 페이지로 표시하는 오브젝트

 

  • Hosting View Controller

: 프로그래밍 방식으로 루트 뷰를 할당하는 UIHostingController의 사용자 지정 하위 클래스를 선언하여 SwiftUI 뷰 계층 구조 콘텐츠를 사용자 지정합하는 오브젝트

 

  • GLKit View Controller

: 모든 표준 뷰 컨트롤러 기능을 제공하고 OpenGL ES 렌더링 루프를 구현하는 오브젝트

 

  • AVKit Player View Controller

: 시청각 콘텐츠 및 표준 재생 컨트롤을 표시 할 수있는 AVPlayer 개체를 관리하는 오브젝트

 

  • Object

: 사용자 정의 클래스 Inspector를 사용하여이 객체를 특정 클래스의 인스턴스로 변환하는 오브젝트

 

  • Tap Gesture Recognizer

: 유저가 탭했을 때 반응하는 오브젝트

 

  • Pinch Gesture Recognizer

: 2개의 손가락으로 Pinch를 하는 동안 반응하는 오브젝트

 

  • Rotation Gesture Recognizer

: 2개의 손가락으로 회전을 하는 동안 반응하는 오브젝트

 

  • Swipe Gesture Recognizer

: 스와이프를 하는 동안 반응하는 오브젝트

 

  • Pan Gesture Recognizer

: 드래그를 하는 동안 반응하는 오브젝트

 

  • Screen Edge Pan Gesture Recognizer

: 스크린의 가장자리에서 드래그를 하는 동안 반응하는 오브젝트

 

  • Long Press Gesture Recognizer

: 사용자가 누르고 있는 동안 반응하는 오브젝트.

 

  • Custom Gesture Recogn

: 커스텀 동작에 대해 반응햐는 오브젝트

 

Autolayout

개념

: AutoLayout은 뷰에 주어진 제약조건에 따라 뷰의 크기와 위치를 동적으로 계산해 배치하느것으로,
외부 또는 내부의 변화에 동적으로 반응하여 유저 인터페이스 구성

크게 pin으로 설정하는 방법과, ctrl+드래그앤드랍으로 설정 가능

간격을 고정으로 한 오토레이아웃 (뷰의 크기가 변동)

 

* Safe Area : 상태바 등과 겹치지 않게 미리 IDE에서 표시해 주는 것 (파란색 테두리로 표현)

Safe Area

설정 방법

1) pin으로 설정하는 방법 (가장 좋은 방법)

pin

2) ctrl+드래그앤드랍 방법

드래그 앤 드랍

3) resolve auto layout버튼에서 "Add Missing Constraints"로 한번에 설정 (단 크기 유지 안될 수 있으므로 비추천)

Add Missing Constraints

 

 

[출처]

https://ios-development.tistory.com/30

https://velog.io/@minb_dev/Storyboard-%EC%BB%B4%ED%8F%AC%EB%84%8C%ED%8A%B8-%EB%AA%A8%EB%91%90-%EC%95%8C%EC%95%84%EB%B3%B4%EA%B8%B0

728x90