본문 바로가기

ios

(6)
SwiftUI) ObservableObject와 상속 ViewModel 객체 분리 뷰에서 표현해야할 데이터를 네트워킹을 통해 외부에서 가져와야할 때 ViewModel 객체로 분리시켜서 데이터를 업데이트 했습니다. 네트워킹을 통해 데이터를 가져와야 하는 뷰가 많아서 각 뷰모델이 겹치는 경우가 많아서 전체적으로 사용할 기본 뷰모델 MiniVibeViewModel을 만들었습니다. class MiniVibeViewModel: ObservableObject { private let network = NetworkService(session: URLSession.shared) private var cancellabes = Set() func internalFetch(endPoint: MiniVibeType, id: Int? = nil, filterQuery: Stri..
iOS) 레이아웃(1) - 인터페이스 빌더 1. 씬의 변화 씬이 변화되는 경우 기기의 회전 다른 화면 크기/배율의 기기에서 동작 동적인 씬 레이아웃 변화 기기의 회전 시뮬레이터 -> 하드웨어 -> 로테이트 메뉴 에서 기기를 회전시킬 수 있다. 프로젝트 내 회전 방향을 설정하여 해당 방향으로 회전됐을 때 화면이 자동으로 돌아가게 할 수 있다. 프레임 기반의 레이아웃 뷰의 프레임은 뷰의 좌표(x,y), 뷰의 크기(width, height)로 나타낸다. 이는 씬의 변화에 관계없이 고정된 값이다. 따라서 씬에 변화가 발생했을 때 적절히 대처하지 못한다. 2. 제약조건 기반의 레이아웃 제약조건은 뷰의 위치와 크기에 대한 제약조건이다. 동적으로 해석되서 프레임에 반영된다. 씬에 변화가 발생했을 때 제약조건에 의해 다시 새로운 좌표와 크기를 잡아서 적용된다...
iOS) Scene(4) - 코드로 뷰 제어 코드로 뷰 제어 뷰 구조 생성 이후 뷰 제어하기 앱 동작 중 컨텐츠 변경 런타임 시 뷰 구조 변경 코드로 작성한 뷰 제어 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) } } 뷰의 태그로 접근 각 뷰마다 tag라는 프로퍼티가 있는데 이는 일종의 일련번호이다. 이 태그로 접근할 수 있다. 기본값은 0이므로 태그를 사용하기 위해서는..
iOS) Scene(3) - 코드로 씬 작성 씬 작성에 관련된 클래스 1. 뷰 컨트롤러 UIViewController를 상속받는 뷰 컨트롤러이다. 뷰 컨트롤러 안에 씬에 대한 구성을 하는 코드 작성한다. 우선 콘텐츠 출력에 맞는 뷰를 선택해서 뷰에 대한 객체 생성하고 뷰 객체의 속성을 이용해서 화면상에 어떻게 나타날지 작성한다. 뷰 컨트롤러 안에 들어가는 코드는 다음과 같다. 뷰를 이용해서 컨텐츠 출력 코드 컨트롤에서 발생한 이벤트를 다루는 코드 뷰 구조 작성 코드 씬의 생명주기 뷰 컨트롤러가 하는 가장 중요한 것 중 하나는 씬에 대한 생명주기를 관리하는 것이다. 우리가 ios 애플리케이션을 만들게 되면 화면 단위 즉 씬을 여러 개 만들게 되는데 그 씬 사이에 전환이 발생하게 된다. 각 순간에 동작하는 라이프사이클 메서드가 정의되어 있다. // 씬..
iOS) Scene(2) - 인터페이스 빌더로 씬 작성 인터페이스 빌더로 씬 작성 뷰를 이용한 씬 작성 뷰란? 씬의 콘텐츠 출력 씬을 작성할 때 씬은 씬에 속한 뷰를 이용하여 화면에 나타낸다. 뷰의 가장 기본적인 역할은 콘텐츠 출력이다. 콘텐츠 종류에 맞는 뷰 UIKit은 여러 개의 뷰를 제공하는데 자신이 출력하고자 하는 콘텐츠의 종류에 맞는 뷰 하나를 선택해야 한다. 예를 들어 글자를 출력해야 하면 글자를 출력하는 기능을 제공해주는 뷰를 사용해야 한다. 이미지를 출력해야 하면 이미지를 출력할 수 있는 기능을 제공하는 뷰를 사용해야 한다. 뷰 작성과 속성 이렇듯 컨텐츠 종류에 맞는 뷰를 선택하고 그다음 뷰를 작성하고 속성 값을 넣어준다. 화면상에 나타나기 위해서는 씬에 대한 뷰 구조에 추가해주는 과정을 거쳐야 한다. 뷰 구조 씬에 뷰를 배치할 경우 자동으로 ..
iOS) Scene(1) - 씬이란? 씬이란? iOS 앱에서 씬은 화면 단위를 의미한다. 사용자에게 다양한 컨텐츠를 보여주고 사용자와 상호작용 하는 하나의 단위이다. 콘텐츠 출력 사용자와 상호작용 UIKit 사용자 인터페이스(UI) 작성을 위한 요소 제공 다음의 것들이 UIKit에서 제공하는 대표적인 것들이다. UIView 콘텐츠 출력용 뷰 UIControl 사용자 입력 가능한 컨트롤 UIViewController 씬 제어: 뷰 컨트롤러 씬 구성 요소 아래 자료는 인터페이스 빌더의 도큐먼트 아웃라인에 있는 것이다. 총 세 개의 씬으로 구성되어 있다. 각 씬을 펼쳐보면 씬을 구성하는 구성요소가 나타난다. 이 중 가장 중요한 것은 View Controller와 View 이다. View Controller 코드를 이용해서 컨텐츠를 출력하거나 사용..