내일배움캠프 7기 Day17 TIL

Daisy Kim·2023년 8월 1일
1

오늘은 한번 학습내용을 복습하면서 이 페이지에 정리해보려고 한다.

UIView 와 UIViewController 란

UI(User Interface)View

UI 구성에 사용되는 객체로 화면에 보이는 모든 요소(하위클래스 또는 UIView를 상속받는 클래스)들의 기본 클래스

UIView 의 특징

  • 위치, 크기, 배경색 등을 변경 가능
  • 애니메이션 효과를 줄 수 있음(ex: UIView.animate, UIViewProperty Animator)
  • addSubview(_ :)를 활용하여 superview(상위뷰)와 subview(하위뷰)의 계층적 구조형태로 시각적인 내용을 구성
  • Storyboard의 기본적인 구성요소
  • Auto Layout을 통해 위치나 크기를 고정 가능

컴포넌트(요소) 예시

  • UIButton, UILabel, UIImageView, UIWebview, UIScrollView 등

코드 작성 예시

> 객체 생성법 :
let myView = UIView(frame:CGRect(x:값, y:값, width:값, height:값))

> 뷰의 배경색상 지정 :
myView.backgroundColor = UIColor.black

> 뷰의 위치 및 크기 조정 :
myView.frame = CGRect(x:값, y:값, width:값, height:값)

> 뷰를 서브뷰로 추가 :
self.view.addSubview(myView)

UIViewController

UIViewController를 생성하여 여러 UIView들을 관리 ⇒ 결과적으로 UI를 관리
다른 UIViewController들과 데이터 공유가 가능하며 터치, 드래그 등 사용자 상호작용(User Interaction)을 처리할 수 있다.

UIViewController의 특징

  • Storyboard 와 생성자 코드 2가지 방법을 통해 객체를 생성 가능
  • 생명주기를 통한 다양한 매서드를 관리할 수 있다.

UIViewController 예시

  • UIViewController
  • UITableViewController
  • UICollectionViewController
  • Container View Controller

    : Content View Controller를 포함하는 View Controller

Container View Controller 종류

  • UISplitViewController(ex: iPad 메모앱 가로모드)
  • UINavigationController:
    스택 형태로 관리, Push/Pop 동작처리
  • UITabBarController:
    Apple 기본 애플리케이션 대부분이 탭기반 동작을 사용하고 있음,
    사용자의 쉬운 액세스,
    Child View Controller 로 불리는 View Controller들을 관리
  • UIPageViewController 등

코드 작성 예시

  • 생명주기에 따라 구현해보자
class MyViewController: UIViewController {
    override func viewDidLoad() {
        super.viewDidLoad()
        // 화면이 로드되었을 때 초기화 작업
    }
    
    override func viewWillAppear(_ animated: Bool) {
        super.viewWillAppear(animated)
        // 화면이 나타나기 전, 필요한 데이터 설정 또는 기타작업
    }
    
    override func viewDidAppear(_ animated: Bool) {
        super.viewDidAppear(animated)
        // 화면이 나타난 후, 사용자 입력처리 및 다른 작업
    }
    
    override func viewWillDisappear(_ animated: Bool) {
        super.viewWillDisappear(animated)
        // 다른 화면으로 이동 전, 수행 작업
    }
    
    override func viewDidDisappear(_ animated: Bool) {
        super.viewDidDisappear(animated)
        // 다른 화면으로 이동 후, 수행 작업
    }
}

내용을 정리하면서 아쉬운 점은 강조하고 싶은 부분에 아날로그 감성으로 형광펜 표시를 하면 좋을텐데 그 기능이 벨로그에 없다는 점..🥲

관계자 분들이 호옥시나 이 글을 보게 된다면 형광펜 기능을 추가해주시면 좋겠다.

profile
Technology proderit homini

1개의 댓글

comment-user-thumbnail
2023년 8월 1일

개발자로서 성장하는 데 큰 도움이 된 글이었습니다. 감사합니다.

답글 달기