iOS/UIKit
-
[참고 영상] https://youtu.be/SAZzcKvOvAE [학습 목표] 코디네이터 패턴이란 VC 사이의 데이터를 전달해주는 하나의 코디네이터를 만들어서 데이터 연결을 해당 코디네이터에서 해주는 것이다. 단순히 VC 끼리 데이터를 연결할때와 달리 해당 코디네이터를 통해서 함으로서 팀 프로젝트와 같이 협업을 해야할 때 데이터 연동이 직접 하는것보다 쉬워진다는 장점이 있다. 알아두면 꼭 한번은 쓸만한 패턴이므로 한번씩은 봐두자 [구현 방법] 1. 우선은 해당 스토리보드 환경을 코드베이스 환경으로 바꿔주자. (참고글 : 코드베이스로 구현) 2. 이제 VC A 와 VC B 를 만들어 줄 것이다. 단순히 버튼과 화면색깔만 있는 VC A class ViewController: UIViewController,..
[코드베이스] 코디네이터 패턴[참고 영상] https://youtu.be/SAZzcKvOvAE [학습 목표] 코디네이터 패턴이란 VC 사이의 데이터를 전달해주는 하나의 코디네이터를 만들어서 데이터 연결을 해당 코디네이터에서 해주는 것이다. 단순히 VC 끼리 데이터를 연결할때와 달리 해당 코디네이터를 통해서 함으로서 팀 프로젝트와 같이 협업을 해야할 때 데이터 연동이 직접 하는것보다 쉬워진다는 장점이 있다. 알아두면 꼭 한번은 쓸만한 패턴이므로 한번씩은 봐두자 [구현 방법] 1. 우선은 해당 스토리보드 환경을 코드베이스 환경으로 바꿔주자. (참고글 : 코드베이스로 구현) 2. 이제 VC A 와 VC B 를 만들어 줄 것이다. 단순히 버튼과 화면색깔만 있는 VC A class ViewController: UIViewController,..
2022.11.29 -
Switch Case문을 쓰면 특정 Case들에서만 함수를 호출 안하게 만들고 싶을 때가 있다. Swithc Case 문에서는 if 문 대신에 where 절을 사용하지만 이렇게 만들면 기본 구조가 보기 힘들어질 수 있기 때문에 다른 방식을 이용해서 해당 문제를 해결해보고자 하자. 1. 여기선 checkAlbumPermission이라는 함수를 실행하면 내부에 presentImagePicker를 실행하도록 만들었다. editPhotoButton // edit Photo Button을 누른다면 .tapPublisher .sink { [weak self] in self?.checkAlbumPermission { //checkAlbumPermission 실행 DispatchQueue.main.async {self..
Switch Case문에서 특정 조건들에서는 함수를 호출 안하기.Switch Case문을 쓰면 특정 Case들에서만 함수를 호출 안하게 만들고 싶을 때가 있다. Swithc Case 문에서는 if 문 대신에 where 절을 사용하지만 이렇게 만들면 기본 구조가 보기 힘들어질 수 있기 때문에 다른 방식을 이용해서 해당 문제를 해결해보고자 하자. 1. 여기선 checkAlbumPermission이라는 함수를 실행하면 내부에 presentImagePicker를 실행하도록 만들었다. editPhotoButton // edit Photo Button을 누른다면 .tapPublisher .sink { [weak self] in self?.checkAlbumPermission { //checkAlbumPermission 실행 DispatchQueue.main.async {self..
2022.11.24 -
[참고 영상] https://youtu.be/u6TpJrZNuPU [학습 목표] 모달뷰를 사용할때 해당 뷰의 애니메이션 효과를 조정해보자. [구현 방법] 1. 팝업을 하기 위해서 뷰를 작성해보자. import Foundation import UIKit class Popup: UIView { fileprivate let titleLabel: UILabel = { let label = UILabel() label.translatesAutoresizingMaskIntoConstraints = false label.font = UIFont.systemFont(ofSize: 28, weight: .bold) //font 크기를 28로 변환 및 bold체 label.text = "1 credit" label.tex..
[코드베이스] Custom PopUp Modal Animation[참고 영상] https://youtu.be/u6TpJrZNuPU [학습 목표] 모달뷰를 사용할때 해당 뷰의 애니메이션 효과를 조정해보자. [구현 방법] 1. 팝업을 하기 위해서 뷰를 작성해보자. import Foundation import UIKit class Popup: UIView { fileprivate let titleLabel: UILabel = { let label = UILabel() label.translatesAutoresizingMaskIntoConstraints = false label.font = UIFont.systemFont(ofSize: 28, weight: .bold) //font 크기를 28로 변환 및 bold체 label.text = "1 credit" label.tex..
2022.11.17 -
[참고 영상] https://youtu.be/jxhq1_7HkJg [학습 목표] UIKit을 이용해 아이폰과 아이패드에서 각각 ShareSheet(UIActivityViewController)를 구현해 보자. [구현 방법] 1. 우선은 ShareSheet을 불려올 버튼을 만들도록 하자. import UIKit class ViewController: UIViewController { //UIButton 코드 버튼UI이기 때문에 크게 신경 쓸 부분은 없다. private let button: UIButton = { let button = UIButton() button.backgroundColor = .link button.setTitle("Tap Me", for: .normal) button.setTitl..
[코드베이스] Creating Share Sheet in App[참고 영상] https://youtu.be/jxhq1_7HkJg [학습 목표] UIKit을 이용해 아이폰과 아이패드에서 각각 ShareSheet(UIActivityViewController)를 구현해 보자. [구현 방법] 1. 우선은 ShareSheet을 불려올 버튼을 만들도록 하자. import UIKit class ViewController: UIViewController { //UIButton 코드 버튼UI이기 때문에 크게 신경 쓸 부분은 없다. private let button: UIButton = { let button = UIButton() button.backgroundColor = .link button.setTitle("Tap Me", for: .normal) button.setTitl..
2022.11.11 -
[참고 영상] https://youtu.be/a1Agazw2JxM [학습 목표] UIKit에서 코드베이스를 이용해서 ContextMenu를 만들어 보자! (해당 학습에서 쓰는 모든 이미지의 저작권은 각 이미지의 저작권자한테 있습니다.) [구현 방법] 1. 우선은 ContextMenu를 만들기 이전에 Collection View를 먼저 만들어보도록 하자. 1 - 1. asset에 원하는 이미지를 6개 넣고(만일 원한다면 추가로 더 넣거나 빼고 imageNames Array에서 1부터 이미지 넣은 숫자만큼으로 수정해주자.) 이름을 image숫자로 지정해주자. 1 - 2. 코드베이스를 활용해서 collectionview를 구현하자. import UIKit class ViewController: UIViewCo..
[UIKit][코드 베이스]CollectionView Context Menus[참고 영상] https://youtu.be/a1Agazw2JxM [학습 목표] UIKit에서 코드베이스를 이용해서 ContextMenu를 만들어 보자! (해당 학습에서 쓰는 모든 이미지의 저작권은 각 이미지의 저작권자한테 있습니다.) [구현 방법] 1. 우선은 ContextMenu를 만들기 이전에 Collection View를 먼저 만들어보도록 하자. 1 - 1. asset에 원하는 이미지를 6개 넣고(만일 원한다면 추가로 더 넣거나 빼고 imageNames Array에서 1부터 이미지 넣은 숫자만큼으로 수정해주자.) 이름을 image숫자로 지정해주자. 1 - 2. 코드베이스를 활용해서 collectionview를 구현하자. import UIKit class ViewController: UIViewCo..
2022.11.10 -
[참고 영상] https://youtu.be/POLnNZi0CcM [학습 목표] SwiftUI를 사용하면서 Zstack의 편리함에 대해서 배웠다. 하지만, UIKit 환경에서는 Zstack이 기본으로 주어지지 않는다. 그러니 UIKit 환경에서 Zstack을 구현해 보도록 하자! [구현 방법] 우선은 코드베이스를 하기 위한 기본 셋팅을 하도록 하자. ( 잘 모르는 분들은 https://yoon-1212.tistory.com/105 를 참고하시길 바란다.) 그러면 이제 이미지를 가져오도록 하자. (이미지 출처 : https://www.history.com/topics/christmas/history-of-christmas) 우선은 Zstack을 구현하기 전에 넣어질 요소들에 대해서 코드를 짜보도록 하자. ..
[UIKit][코드 베이스] UIKit에서 Zstack 구현하기[참고 영상] https://youtu.be/POLnNZi0CcM [학습 목표] SwiftUI를 사용하면서 Zstack의 편리함에 대해서 배웠다. 하지만, UIKit 환경에서는 Zstack이 기본으로 주어지지 않는다. 그러니 UIKit 환경에서 Zstack을 구현해 보도록 하자! [구현 방법] 우선은 코드베이스를 하기 위한 기본 셋팅을 하도록 하자. ( 잘 모르는 분들은 https://yoon-1212.tistory.com/105 를 참고하시길 바란다.) 그러면 이제 이미지를 가져오도록 하자. (이미지 출처 : https://www.history.com/topics/christmas/history-of-christmas) 우선은 Zstack을 구현하기 전에 넣어질 요소들에 대해서 코드를 짜보도록 하자. ..
2022.10.13