목록개발/iOS (24)
개발을 잘하고 싶은 주니어?
이번에는 테이블 뷰에 대한 공부를 해보겠습니다. 우선 인터페이스 빌더로 테이블 뷰를 생성해서 다른 뷰로 데이터를 넘겨주는 것을 해보겠습니다. 다음 2번에서는 코드로 이것들을 다시 구현하는 것을 해볼 예정입니다. Segue 테이블 뷰의 셀을 클릭했을 때 셀의 데이터가 다른 뷰로 넘어가도록 하기 위해서는 segue라는 개념을 알아야 합니다. 애플 문서에서 보면 UIStoryboardSegue 클래스는 두 개의 뷰 컨트롤러 사이에 시각적인 전환을 수행하고 준비하는 오브젝트라고 되어 있습니다. 쉽게 말하자면 현재 뷰컨에서 다른 뷰컨으로 넘어가는 것을 준비하고 수행하는 오브젝트라는 것입니다. Segue 오브젝트는 다음으로 넘어갈 뷰컨에 대한 정보가 포함되어 있습니다. segue가 수행되기 전에 (다음 뷰컨으로 넘..
생성자 UIView를 서브 클래싱 할 때는 두 개의 생성자를 구현할 수 있습니다. 1. init(frame:) : 특정 frame으로 뷰를 생성하고 싶을 때 사용합니다. 코드로 뷰를 추가할 때 사용됩니다. 구현 가장 첫 줄에는 super.init(frame: frame)을 추가해줍니다. 2. init(coder:) : 스토리보드나 .xib파일로 뷰가 생성될 때 사용됩니다. Main Run Loop UIApplication 객체는 앱이 실행될 때 Main Run Loop를 실행하고, 이 Run Loop로 이벤트를 처리합니다. (메인 스레드에서 작동) Main Run Loop 레이아웃 위치의 변화, 터치와 같은 이벤트들을 처리합니다. 이벤트를 모두 처리하면 Main Run Loop로 돌아오게 되고 이 시점을..
코드로 StackView 추가하기 스택 뷰를 이용해서 위의 이미지랑 똑같이 만들어보겠습니다. 먼저 필요한 이미지와 레이블을 위한 클래스를 생성해줍니다. (각각 ImageView.swift, labelView.swift) 이미지를 설정해주고, 레이블의 폰트를 설정해줍니다. (이미지는 제일 맛있는 명동교자칼국수입니당) class ImageView: UIImageView { override init(frame: CGRect) { super.init(frame: frame) setupImageView() } required init?(coder: NSCoder) { super.init(coder: coder) setupImageView() } private func setupImageView(){ image =..
Auto Layout을 공부하면서 쓰는 글입니다. 사실 Auto Layout 외의 개념들도 적을 예정입니다. 뒤죽박죽일 수 있음. 코드로 앱 시작하기 프로젝트를 처음 만들고 Target -> Deployment Info -> Main Interface를 확인하면 기본적으로 Main으로 설정된 것을 볼 수 있습니다. 인터페이스 빌더로 UI를 구현하면, target main interface에 있는 스토리 보드의 뷰컨으로 시작합니다. 코드로 똑같이 구현할 때는 AppDelegate.swift에 application(_: didFinishLaunchingWithOptions:)에서 아래의 코드를 추가해줍니다. // 1 let storyboard = UIStoryboard(name: "Main", bundle:..