Danny의 iOS 컨닝페이퍼
반응형
article thumbnail
[Swift/TIL #10] ScrollView의 콘텐츠들을 중간으로 배치시켜보자
프로젝트 2023. 4. 9. 19:22

[TIL #10] 2023 / 04 / 09 프로젝트에서 스크롤뷰를 사용 중인데, 문제가 발생했습니다. 현재 상황은 스크롤 뷰 안쪽에 스택뷰를 배치하고, 스택뷰의 레이아웃을 스크롤 뷰의 중심으로 맞춰서 모양을 만들어 줬습니다. self.addSubview(photoScrollView) photoScrollView.snp.makeConstraints { $0.top.equalTo(photoLabel.snp.bottom).offset(titleGap-space) $0.trailing.leading.equalToSuperview().inset(sideInset) $0.height.equalTo(imageSize+space) } photoScrollView.addSubview(photoStackView) pho..

article thumbnail
[Swift/TIL #9] PHPickerViewController에 대하여
프로젝트 2023. 4. 5. 02:03

[TIL #9] 2023 / 04 / 03 ~ 2023 / 04 / 06 사진을 가져오려 하는데 iOS 14 이상부터는 UIImagePickerController 대신 PHPickerViewController를 사용하라고 하더라고요. 그래서 오늘은 PHPickerViewController에 대해서 알아보겠습니다. PHPickerViewController 공식 문서 링크 PhotoKit WWDC2021 정보가 많이 없어 공식문서와 WWDC를 참고해서 만들어 봤습니다. 틀린 내용 있으면 댓글 부탁드려요! 한번 간략하게 설명해 보겠습니다. PHPickerViewController는 iOS 14에서 새로 추가됐고 기존에 사용하던 UIImagePickerController와 같이 이미지나 비디오 같은 미디어들을 ..

article thumbnail
[iOS/Swift] Life Cycle의 loadView
UIKit/Swift 2023. 3. 31. 00:23

시작 간단히 할 예정이라 먼저 초스피드로 뷰 컨트롤러의 Life Cycle을 알아봅시다. 뷰컨의 Life Cycle의 순서 loadView 뷰를 생성합니다. (시스템에서 자동 호출) ⬇ viewDidLoad 뷰가 로드되고 작업을 수행 (앱이 실행되고 오직 한 번만 작업을 수행) ⬇ viewWillAppear 뷰가 화면에 나타나기 직전 준비 작업을 수행 (뷰컨으로 다시 되돌아올 때마다 작업을 다시 수행) ⬇ 뷰가 화면에 나타남 ⬇ viewDidAppear 뷰가 화면에 나타난 후 작업을 추가적으로 수행 ⬇ viewWillDisappear 뷰가 화면에서 사라지기 전에 마무리 작업을 수행 (메모리는 아직 존재) ⬇ 뷰가 화면에서 사라짐 ⬇ viewDidDisappear 뷰가 화면에서 완전히 사라진 후 작업을 수..

article thumbnail
[Swift/TIL #8] UISheetPresentationController (하프 모달을 만들어 보자)
프로젝트 2023. 3. 30. 17:28

[TIL #8] 23 / 03 / 30 오늘은 iOS 15에서 새로 도입된, UISheetPresentationController에 대해 간단히 알아보겠습니다. 참고 자료 UISheetpresentationcontroller WWDC2021 WWDC는 꼭 한번 시청해 보세요. UISheetPresentationController UISheetPresentationController를 사용하기 위해서는 modalPresentationStyle의 설정 중, 오직 pageSheet, formSheet를 사용할 때, 구현이 가능합니다. fullScreen과 같은 다른 이외의 값들은 nil 값을 갖게 돼서, 사용이 불가능합니다. UISheetPresentationController의 기능을 간단히 설명하면, Sh..

article thumbnail
[iOS/Swift] plist의 데이터 가져오기 (Swift 5)
UIKit/Cheat Sheet 2023. 3. 29. 18:40

시작 이전에 이미 plist의 데이터를 갖고 오는 방법을 설명을 했었습니다. [iOS/Swift] 개발 환경에 따라 각각의 다른 plist의 저장된 API Key 값 받아오기 [iOS/Swift] plist의 값 얻는 방법 및 Github에서 중요한 정보 숨기는 방법(API Key, Bundle, gitignore) 그런데 불러오는 과정에서 NSDictionary(contentsOfFile: String)은 iOS 11 부터 더 이상 사용되지 않더라고요. 이런식으로 사용이 가능하네요. var parsePlist: NSDictionary { guard let plistUrl = Bundle.main.url(forResource: "SecureAPIKeys", withExtension: "plist") el..

article thumbnail
[Swift/TIL #7] MKAnnotationView를 직접 만들어 보자
프로젝트 2023. 3. 28. 21:22

[TIL #7] 23 / 03 / 27 ~ 23 / 03 / 28 자 오늘도 Mapkit을 할 건데요. 이번엔 MKAnnotationView에 관련하여 알아보겠습니다. 공식문서 예제 를 참고하여 만들었습니다. 시작 자 그러면 이제 MKAnnotationView를 상속받아 커스텀으로 AnnotationView를 만들어 보겠습니다. 타이틀과 사진을 포함한 AnnotationView을 만들어 보려고 하는데요. AnnotationView도 일종에 View라고 생각하고 만드시면 됩니다. Annotation, AnnotationView 및 처리까지 한번 직접 구현을 해봅시다. 우린 [Swift/TIL #6] MapKit을 사용해 보자 에서 직접 Annotation을 만들어봤습니다. 이번에는 이미지도 같이 사용할 것..

article thumbnail
[iOS/Swift] 동적 디스패치(@objc dynamic)
UIKit/Swift 2023. 3. 27. 14:37

시작 공식문서에서 MapKit의 Annotation 예제를 살펴보던 중 @objc dynamic var라는 키워드가 나오더라고요. annotation 예제 공식문서 MKAnnotation - coordinate 공식문서 Realm에서도 이런 키워드를 봤던 거 같은데, 그래서 오늘 간단히 한번 정리해 보고 넘어가려고 글을 적게 됐습니다. 정적(static) / 동적(dynamic) 디스패치 들어가기 전에 간단히 차이섬을 알아봅시다. 👉 정적(static) 디스패치 컴파일러가 컴파일 시점에 호출해야 할, 메서드의 실제 위치를 미리 알고 있기 때문에, 매우 빠르게 동작합니다. 컴파일 타임에 결정이 되기 때문에, 상대적으로 속도 빠릅니다. 모든 구조체는 이와 같이 동작합니다. 대신 클래스에서는 상속을 못하게 되..

article thumbnail
[Swift/TIL #6] MapKit을 사용해 보자
프로젝트 2023. 3. 25. 22:16

[TIL #6] 23 / 03 / 25 오늘은 간단하게 MapKit을 구현해보려 합니다. MapKit의 속성 및 메서드들을 정리해보려고 합니다. 지도 불러오기 객체 MKMapView를 만든 후, 레이아웃만 잡아주면 됩니다. class MapViewController: UIViewController { let mapView = MKMapView() override func viewDidLoad() { super.viewDidLoad() self.view.addSubview(mapView) mapView.snp.makeConstraints { $0.edges.equalToSuperview() } } } 속성과 메서드 너무 많아서 전체를 설명하긴 힘들고, 자주 사용하는 것들만 보여드리겠습니다. 자세한 내용은 ..

article thumbnail
[Swift/TIL #5] 커스텀 이미지의 Tint Color 및 Size를 조절해 보자.
프로젝트 2023. 3. 24. 02:10

[TIL #5] 23 / 03 / 23 하... Tint... 오늘은 이미지를 불러와 버튼을 생성하는데, 이미지가 작아서 크기 변경이 필요했고, tint 컬러도 변경하려고 했습니다. 적용이 않돼서 한참 동안 싸우다가, 공부 겸 까먹지 않기 위해 이렇게 글을 쓰게 됐네요. UIGraphicsImageRenderer 간단 소개를 하자면, iOS 10부터 추가된 클래스로, Core Graphic을 통해 쉽게 이미지를 그릴 수 있는 API를 제공합니다. 자세한 내용은 공식문서 를 참고하세요. UIGraphicsImageRenderer를 통해 출력 이미지를 렌더링을 할 수 있습니다. 공식문서에 자세히 나와있지만, 간단히 사용해 봅시다. UIGraphicsImageRenderer 객체 생성 그런데 UIImage 타..

article thumbnail
[Swift/TIL #4] Pop 버튼 애니메이션 (원 반경에 따라 버튼 생성 해보자)
프로젝트 2023. 3. 22. 03:11

[TIL #4] 22 / 03 / 21 오늘은 [Swift/TIL #3] 탭바 아이템을 버튼으로 교체 with CGAffineTransform(회전) 에서 만든, 중간 add 버튼을 클릭하면, 팝 버튼이 생성되는 애니메이션을 만들어보려 합니다. 일단 아직 고쳐야 할 게 있지만, 중간 결과물을 먼저 봅시다. 오늘의 작업 1. Pop 버튼 생성 준비 2. Pop 버튼 생성 및 위치 설정 3. 애니메이션 및 버튼 처리 고쳐야 할 일 현재 만들고자 하는 건 원이 0에서 점점 커지는 애니메이션을 만들고 싶은데, 버튼의 원이 먼저 생성되고 스케일이 커지는 문제점이 있네요. (수정 완료) Pop 버튼 생성 준비 일단 버튼에 사용할 데이터들을 구조체로 만들어 줬습니다. // 탭바 pop 버튼에 사용할 데이터 stru..

반응형