Patrick's 데이터 세상

iOS - Building Scene 본문

Programming/Swift

iOS - Building Scene

patrick610 2020. 6. 23. 00:34
반응형
SMALL

■ 뷰

   뷰 : UIView

   뷰의 위치와 크기

      frame : 위치와 크기, CGRect 구조체
      origin ; 위치, CGPoint 구조체
      size : 크기, CGSize 구조체
      center : 중심 좌표 : CGPoint 구조체

   
   뷰 생성

      ⊙ 위치와 크기 정보 입력

let frame = CGRect(x: 10, y: 10, width: 100, heightL 100)
let view1 = UIView(frame:frame)


      ⊙ 뷰 생성 후 frame으로 위치/크기 입력

let view = UIView()
view.frame = CGRect(x: 10, y: 10, width: 100, height: 100)


   
   뷰 색상 

      색깔 : UIColor
      미리 정의된 색
      RGBA : 0 ~ 1.0 사이의 값

view.backgroundColor = UIColor.red
view.backgroundColor = UIColor(red: 1.0, green: 0.0, blue: 1.0, alpha: 1.0)

 

   뷰 구조

      뷰 출력하기
      씬의 루트 뷰


      ⊙ UIViewController

var view: UIView!



      ⊙ UIView 클래스

var superview: UIView? {get}   // 부모 뷰
var subviews: [UIView] {get}   // 자식 뷰



      ⊙ 자식뷰 추가

func addSubview(_ view: UIView)



      ⊙ 씬에 뷰 추가하기

let childView = UIView(frame: CGRect(x: 10, y: 10, width: 100, height: 100))
self.view.addSubview(childView)



      ⊙ 씬에서 삭제

func removeFromSuperview()

 

    ⊙ 뷰 구조 중간에 삽입

func insertSubview(_ view: UIView, at index: Int)



    ⊙ 뷰 구조에서 이동

func bringSubview(toFront view: UIView)
func sendSubview(toBack view: UIView)

 


   뷰 컨트롤러

      씬마다 뷰 컨트롤러 존재
      UIViewController의 자식 클래스
      루트 뷰 : view 프로퍼티
      씬의 라이프사이클

 

   씬의 생명주기 관리

      씬 생성과 전환에 따른 생명 주기   

func viewDidLoad()                      // 처음에 생성되고 준비될 때
func viewWillAppear(_ animated: Bool)   // 뷰가 화면에 나타날 때
func viewWiilLayoutSubviews()           // 레이아웃 관련 메서드
func viewDidLayoutSubviews()            // 레이아웃 관련 메서드
func viewDidAppear(_ animated: Bool)    // 화면이 나타난 이후
func viewWiilDisappear(_ animated: Bool)// 다른 씬에 의해 화면이 사라질 때
func viewDidDisappear(_ animated: Bool) // 다른 씬에 의해 화면이 사라질 때




      씬 생명 주기 살펴보기

         뷰 구조 다루기 적당한 생명 주기 : viewDidLoad
         레이아웃이 반영된 이후 : viewDidLayoutSubviews

override func viewDidLoad() {
   super.viewDidLoad()
   
   let childView = UIView(frame: CGRect(x:10, y:10, width:100, height:100))
   self.view.addSubview(childView)
}

 

 

■  뷰 제어하기

   코드로 뷰 작성한 경우

      씬이 나타나고 뷰 속성 변경 예

class ViewController: UIViewController {
   var redView : UIView!
   
   override func viewDidAppear(animated: Bool) {
      redView.backgroundColor = UIColor.gray
   }
   
   override func viewDidLoad() {
      redView = UIView(frame:frame)
      self.view.addSubview(redView)
   }
}

 

   아웃렛

      아웃렛 프로퍼티

         @IBOutlet 지시자
         weak ARC 지시자
         강제 언래핑 옵셔널 - nil 가능

class ViewController: UIViewController {
   @IBOutlet weak war redView: UIView!
}

 


      아웃렛 연결

         아웃렛 프로퍼티 먼저 작성 후 연결
         씬에서 뷰 컨트롤러 선택 후 오른쪽 버튼 클릭
         연결 정보에서 아웃렛 연결

         뷰 선택 후 오른쪽 버튼 클릭
         아웃렛 목록
            삭제기능
            재연결 기능
            하나의 뷰 - 다수 아웃렛 연결 가능

 


      아웃렛 프로퍼티와 ARC

         코드로 작성한 프로퍼티 : strong(화면에서 삭제 -> 프로퍼티 소유)
         인터페이스 빌더로 작성 : weak(화면에서 삭제 -> 객체 해제)

 

 

■  아웃렛 오류

   아웃렛 네임 변경 시 발생 오류

      

반응형
LIST

'Programming > Swift' 카테고리의 다른 글

iOS - 뷰, 컨텐츠  (0) 2020.06.23
error - Thread 1: breakpoint x.x  (0) 2020.06.23
iOS - HelloWorld test 프로젝트 생성  (0) 2020.06.23
Swift 클래스  (0) 2020.06.23
Swift 함수  (0) 2020.06.23
Comments