이전까지는 swift 문법을 배웠고 오늘부터는 본격적으로 Xcode를 이용한 앱개발 입문과정이 시작됐다.
새로운 개념들이 비수가 되어 내 머리에 꽂히고 있지만,,,, 일단은 내 머리가 밑 빠진 독이든 말든 쑤셔 넣고 있다.
익숙하지 않은 개념들을 좀 더 정리해보고자 한다.
UIView
UI는 User Interface로 사용자가 어플상에서 마주치게 되는 요소들, 화면을 말한다
- UIView는 화면에 보이는 모든 요소들의 클래스기 때문에 모든 종류의 시각적 요소들은 UIView의 하위클래스(subClass)가 된다.
- UIView 자체는 아무 것도 나타내지 않기 때문에 override 등을 이용해서 시각적 요소를 개발자의 입맛에 맞게 구성할 수 있다.
- 위치나 크기를 조절할 수 있으며 배경색이나 애니메이션 효과를 구현할 수 있다.
(frame, bound, center, backgroundColor, alpha, layer, UIView.animate, UIViewPropertyAnimator 등)
- 계층적 구조를 통해서 superview, subview로 정의하면서 조화롭게(?) 화면의 인터페이스를 그려낸다(addSubview(_:))활용, Auto layout을 이용하면 위치나 크기를 고정할 수 있다.
- Storyboard에서는 기본적인 구성요소다.
// UIView 객체 생성
let myUIView = UIView(frame: CGRect(x: 0, y: 0, width: 100, height: 100))
// 배경색상 설정하기
myUIView.backgroundColor = UIColor.white
// 생성된 뷰를 서브뷰로 추가
self.view.addSubview(myUIView)
// frame을 이용한 뷰의 위치 및 크기 변경
myUIView.frame = CGRect(x: 50, y: 50, width: 200, height: 200)
UIViewController
(UIViewController
,UITableViewController
,UICollectionViewController
, Container ViewController
등)
- UI를 관리하는데 사용하며, UIViewController의 객체를 생성할 수 있다.
- 한 UIViewController 객체로 여러 UIView들을 관리하고, 사용자가 어플을 사용하는 사용자 상호작용을 처리한다(User Interaction/ 예시: 화면 터치, 드래그 등)
- 다른 UIViewController와 데이터를 공유할 수 있다.
- 생성하는 방법은 스토리 보드로 생성하거나, 생성자 코드를 이용한 객체 생성 방법 이렇게 두 가지
- 하나 이상의 UIView 객체와 연결되어야 하기 때문에
self.view
와 같이 property를 가지고 있는데 이 view를 통해 UIView를 상속하는 UI 요소(components)들을 하위 View로 배치할 수 있다
- 생명주기를 통해서 다양한 method와 함께 관리할 수 있다.(viewDidLoad())
Container view controller
종류 - (UISplitViewController
- iPadOS에서 많이 쓰임, UINavigationController
, UITabBarController
, UIPageViewController
)
- Content view controller를 포함하고 있는 View controller다. -> 그래서 Content view controller가 무엇인고 하니 UIViewController와 유사한 역할을 하는데, 화면에 표시될 내용의 구성을 담당하는 것이고 데이터를 표시하면서 사용자 상호작용을 처리한다.
저도 오늘 같은 내용 공부했는데 덕분에 한번 더 머릿속에 정리가 되고 복습하는 효과가 있었습니다, 감사합니다! 앞으로도 좋은 포스팅 부탁드려요~ :)