UILabel : 한 줄 이상의 정보 텍스트를 표시
UIButton : 사용자 상호 작용에 대한 응답으로 사용자 지정 코드를 실행하는 컨트롤 버튼
UISegmentedControl : 여러 세그먼트로 구성된 수평 컨트롤이며 각 세그먼트는 개별 버튼으로 작동
UITextField : 편집 가능한 텍스트 영역을 표시하는 개체
UISlider : 연속 된 값 범위에서 단일 값을 선택하기위한 컨트롤
UISwitch : on / off와 같은 바이너리 선택을 제공하는 컨트롤 스위치
UIActivityIndicatorView : 작업이 진행 중임을 보여주는보기
UIProgressView : 시간 경과에 따른 작업 진행 상황을 보여주는보기
UIPageControl : 가로로 일련의 점을 표시하는 컨트롤 . 각 점은 앱 문서 또는 기타 데이터 모델 엔터티의 페이지에 해당
UIStepper : 값을 늘리거나 줄이는 컨트롤
UIStackView : 열 또는 행에 뷰 모음을 배치하기위한 간소화 된 인터페이스 ( horizontal , vertical stack view 2가지)
UITableView : 단일 열에 배열 된 행을 사용하여 데이터를 표시하는 보기
UITableViewCell : 테이블 보기에서 보여지는 단일 행의 표현 (사용자 지정 가능)
UIImageView : 인터페이스에서 단일 이미지 또는 일련의 애니메이션 이미지를 표시하는 개체
UICollectionView : 정렬 된 데이터 항목 모음을 관리하고 사용자 지정 가능한 레이아웃을 사용하여 표시하는 개체
UICollectionViewCell : 해당 항목이 컬렉션 뷰의 가시 범위 내에있는 경우 단일 데이터 항목 (사용자 지정 가능)
UICollectionReusableView : 컬렉션보기에서 제공하는 모든 셀 및 보조보기에 대한 동작을 정의하는보기
UITextView : 스크롤 가능한 여러 줄 텍스트 영역
UIScrollView : 포함 된 뷰를 스크롤 및 확대 / 축소 할 수있는 뷰
UIDatePicker : 날짜 및 시간 값 입력을위한 컨트롤
UIPickerView : 회전하는 바퀴 또는 슬롯 머신 비유를 사용하여 하나 이상의 값 집합을 표시하는보기
UIVisualEffectView : 복잡한 시각 효과를 구현하는 개체 (UIBlurEffect , UIVibrancyEffect : 안의 컨텐츠가 좀더 생생해짐 )
MKMapView : 임베디드(삽입)가능한 지도 인터페이스로, 지도 애플리케이션과 비슷함.
MTKView : Metal 객체를 생성, 구성 및 표시하는 특수 뷰 (그래픽관련) 2018년부터 애플에서 개발한 프레임워크로, 2018이후로 GLKView보다 MTKView를 쓰라고 추천하고 있다.
GLKView (사용x) : OpenGL ES를 사용하여 콘텐츠를 그리는 뷰의 기본 구현. MTKView 이용 추천. (OpenGL은 Open Graphics Library의 약자)
SCNView : 3D SceneKit 콘텐츠를 표시하기위한보기. 3D 씬을 형성하는 노드 계층과, 전역프로퍼티들을 위한 컨테이너.
SKView : SpriteKit 장면을 렌더링하는 뷰 하위 클래스
ARSCNView : SceneKit으로 AR 경험을 표시 할 수있는보기
ARSKView : SpriteKit으로 AR 경험을 표시 할 수있는보기
UIWebView (사용x) : 앱에 웹 콘텐츠를 포함하는보기 . WKWebView 이용 추천.
WKWebView : 인앱 브라우저와 같은 대화 형 웹 콘텐츠를 표시하는 개체
ARView : RealityKit으로 AR 경험을 표시하기위한보기. ARView인스턴스를 사용하여 렌더링 된 3D 그래픽을 사용자에게 표시
UINavigationBar : 일반적으로 탐색 컨트롤러와 함께 화면 상단의 막대에 표시되는 탐색 컨트롤
UINavigationItem : 연관된 뷰 컨트롤러가 표시될 때, 네비게이션 바에 표시되는 아이템
UIToolbar : 인터페이스 하단 가장자리를 따라 하나 이상의 버튼을 표시하는 컨트롤
UIBarButtonItem : toolbar 또는 tab bar에 배치하기위한 특수 버튼 ( class func fixedSpace (너비 고정) , class func flexibleSpace (가변 너비 공간) )
UITabBar : 앱의 여러 하위 작업,보기 또는 모드 중에서 선택하기 위해 탭 막대에 하나 이상의 버튼을 표시하는 컨트롤
UITabBarItem : 탭 표시 줄의 항목
UISearchBar : 사용자로부터 검색 관련 정보를 받기 위한 특수 뷰
UICommand : 선택기에서 작업을 수행하는 메뉴 요소
UIMenu : 앱 메뉴 또는 상황에 맞는 메뉴에서 관련 메뉴 요소를 그룹화하기위한 컨테이너 (서브메뉴,inline section view로 선택 가능)
View Controller UIViewController : UIKit 앱의보기 계층 구조를 관리하는 개체
Storyboard Reference UIViewController : 다른 스토리보드를 참조함
UINavigationController : 계층적 내용을 탐색하기 위한 스택 기반 체계를 정의하는 컨테이너 보기 컨트롤러
UITableViewController : 테이블 뷰 관리를 전문으로하는 뷰 컨트롤러
UICollectionViewController : 컬렉션 뷰 관리를 전문으로하는 뷰 컨트롤러
UITabBarController : 다중 선택 인터페이스를 관리하는 컨테이너보기 컨트롤러로, 선택 항목에 따라 표시 할 하위보기 컨트롤러가 결정
UISplitViewController : 계층 적 인터페이스를 구현하는 컨테이너 뷰 컨트롤러
UIPageViewController : 콘텐츠 페이지 간 탐색을 관리하는 컨테이너보기 컨트롤러로 하위보기 컨트롤러가 각 페이지를 관리UIHostingController : SwiftUI 뷰 계층을 관리하는 UIKit 뷰 컨트롤러
GLKit View Controller GLKViewController (사용x) : OpenGL ES 렌더링 루프를 관리하는 뷰 컨트롤러
AVKit Player View Controller AVPlayerViewController : 시스템 제공 재생 컨트롤과 함께 플레이어 개체의 비디오 콘텐츠를 표시하는보기 컨트롤러
Object NSObject : 이 개체는 뷰 컨트롤러와는 별개이지만 여전히 뷰에 대한 액션 및 콘센트 관계를 유지하는 사용자 지정 컨트롤러를 인스턴스화하는 데 자주 사용됨.
Tap Gesture Recognizer UITapGestureRecognizer : 단일 또는 다중 탭을 해석하는 개별 제스처 인식기
Pinch Gesture Recognizer UIPinchGestureRecognizer : 두 번의 터치가 포함 된 집기 제스처를 해석하는 개별 제스처 인식기
Swipe Gesture Recognizer UISwipeGestureRecognizer : 하나 이상의 방향으로 스 와이프 제스처를 해석하는 개별 제스처 인식기
Pan Gesture Recognizer UIPanGestureRecognizer : 패닝 제스처를 해석하는 개별 제스처 인식기
Screen Edge Pan Geture Recognizer UIScreenEdgePanGestureRecognizer : 화면 가장자리 근처에서 시작하는 패닝 제스처를 해석하는 개별 제스처 인식기
Long Press Pan Geture Recognizer UILongPressGestureRecognizer : 길게 누르는 제스처를 해석하는 개별 제스처 인식기
Custom Geture Recognizer UIGestureRecognizer : 구체적인 제스처 인식기의 기본 클래스
Auto Layout
오토 레이아웃(Auto Layout)은 제약 조건(Constraints)을 이용해서 뷰의 위치를 지정하는 것. 다시 말하면, 두 뷰 사이의 관계를 제약 조건이라는 것을 이용해서 뷰의 크기와 위치를 지정하는 것이다.
오토 레이아웃은 일련의 제약 조건을 사용하여 유저 인터페이스를 정의한다. 제약 조건은 앞서 말한 것 처럼, 일반적으로 두 뷰 간의 관계를 나타낸다. 그런 다음 오토 레이아웃은 이러한 제약 조건을 기반으로 각 뷰의 크기와 위치를 계산한다.
프레임아웃 방식
일반적으로 앱은 뷰 계층 구조의 각 뷰에 대한 프레임을 프로그래밍 방식으로 설정하여 사용자 인터페이스를 배치했다. 프레임은 슈퍼 뷰의 좌표계에서 뷰의 원점, 높이 및 너비를 정의했다.
사용자 인터페이스를 배치하려면 뷰 계층 구조의 모든 뷰에 대한 크기와 위치를 계산해야했다. 그런 다음 변경이 발생하면 영향을받는 모든 뷰에 대한 프레임을 다시 계산해야한다.
여러면에서 뷰의 프레임을 프로그래밍 방식으로 정의하면 가장 유연하고 강력한 기능을 제공한다. 변경이 발생하면 말 그대로 원하는대로 변경할 수 있습니다. 그러나 모든 변경 사항을 직접 관리해야하므로 간단한 사용자 인터페이스를 설계하려면 설계, 디버그 및 유지 관리하는 데 상당한 노력이 필요하다. 진정으로 적응 형 사용자 인터페이스를 만들면 난이도가 훨씬 높아진다.
자동 크기 조정 마스크를 사용하여 이러한 노력의 일부를 줄일 수 있다. 자동 크기 조정 마스크는 수퍼 뷰의 프레임이 변경 될 때 뷰의 프레임이 변경되는 방식을 정의한다. 이것은 외부 변경에 적응하는 레이아웃의 생성을 단순화한다.
그러나 자동 크기 조정 마스크는 가능한 레이아웃의 상대적으로 작은 하위 집합을 지원한다. 복잡한 사용자 인터페이스의 경우 일반적으로 프로그래밍 방식 변경으로 자동 크기 조정 마스크를 보강해야한다. 또한 자동 크기 조정 마스크는 외부 변경에만 적용된다. 내부 변경을 지원하지 않는다.
자동 크기 조정 마스크는 프로그램 레이아웃의 반복적 인 개선 일 뿐이지 만 자동 레이아웃은 완전히 새로운 패러다임을 나타낸다. 뷰의 프레임에 대해 생각하는 대신 그 관계에 대해 생각한다.
자동 레이아웃은 일련의 제약 조건을 사용하여 사용자 인터페이스를 정의한다. 제약 조건은 일반적으로 두 뷰 간의 관계를 나타낸다. 그런 다음 자동 레이아웃은 이러한 제약 조건에 따라 각 뷰의 크기와 위치를 계산한다. 이것은 내부 및 외부 변경 모두에 동적으로 반응하는 레이아웃을 생성한다.
'🌙 iOS 스터디 > Xcode' 카테고리의 다른 글
[Xcode] 데이터 저장방법 (0) | 2021.02.02 |
---|---|
[Xcode] Project editor - 프로젝트 편집기 (0) | 2021.01.25 |
[xcode] Inpo.plist 파일 - 애플리케이션 정보 (0) | 2021.01.24 |
[xcode] HeaderView있는 CollectionView 애플 뮤직 앱 (0) | 2021.01.20 |
[xcode] CollectionView로 Animation기능을 추가한 원피스 현상금 앱 (0) | 2021.01.20 |