목록iOS (28)
clyne의 개발 기록

안녕하세요. iOS 개발자 CNOO입니다!!! 제가 안드로이드 개발하면서, 가장 유용하게(?) 썼던 것이 Visibility.GONE 이라는 플래그였습니다. 안드로이드 개발하시다가 iOS개발을 시작하시면, VISIBILITY.GONE 이 없어 당황해하시는데요 오늘은 iOS에서는 어떻게 해야하는지 알아보도록 하겠습니다. iOS에서는 isHidden 이라는 프로퍼티로, 뷰가 보일지, 가릴지를 결정합니다. 자 , 그러면 이러한 뷰에서, UIView2.isHidden = true 로 UIView2를 가리고, view1과 view3 사이를 좁혀주면 되는데요. 이게 가능하다면, 이렇게 하시면 금방 될것이고... UIView2.snp.updateConstraint { $0.height.eqalTo(0) } 문제는, ..

안녕하세요. iOS 개발자 CNOO 입니다. 오늘은 시계방향 및 반시계방향으로 회전하는 애니메이션에 대해서 작성해보려고 합니다.왜냐면... 제가 개발할 때, 반시계방향 회전때문에 고생했던 기억이 있어서.... 여러분은 그러지 마시라고 공유드립니다. 먼저, 결과물을 보고 시작하겠습니다. 이미지 뷰 회전 결과 180도 ~ 45도 까지의 버튼을 눌러 한바퀴 도는 예제입니다. 버튼이 눌리는 것을 보여드리기 위해, Ripple효과를 추가했는데, 이것은 이번 포스팅에서 다루지는 않을거예요! (혹시 원하시는 분 있으시면 리플 효과에 대해서도 포스팅을 작성해보겠습니다 ㅎㅎ) 자, 그럼 코드를 보겠습니다. 1. 뷰 생성 및 배치 (뷰들을 세팅하고, 클릭 이벤트를 넣는 등의 작업에는 RxSwift, RxGesture, T..

안녕하세요~ IOS 개발자 CNOO입니다. 오늘은 문자열을 자르는 것을 해보려고 해요. 안드로이드 개발해보신 분들은 아시겠지만, Kotlin이라는 언어에는 subString subStringAfter subStringAfterLast subStringBefore subStringAfterLast 이러한 메서드들로 문자열을 자르고 편집하는데요, Swift에는 따로 이러한 함수를 제공하지 않습니다. Swift에서 제공하는 prefix, suffix, index 등의 함수들로 위에 있는 것과 같이 코틀린처럼 문자열 자르는 함수를 확장해보도록 하겠습니다. prefix, suffix, index등의 swift언어의 문자열 관련 함수들은 구글링 해보시면 많은 자료가 나오니, 상세한 사용법은 생략하도록 하겠습니다. ..

안녕하세요. iOS 개발자 CNOO입니다! 오늘은 iOS 중, UIView의 특정 모서리에 코너를 주는 방법에 대해서 알아보도록 하겠습니다. 일반적으로 모든 모서리에 코너를 주는 방법은 아주 쉽습니다. (구글링하면 쏟아집니다..) self.view.layer.cornerRadius = 8 이러한 코드 한줄이면 OK이죠 그런데 우리가 하고싶은 것은, 네 모서리에 다르게 값을 주거나, 특정 모서리에만 코너링을 주는 것이죠.!! 보통은 디자이너분께서 에셋을 잘 그려서 보내주시기도 하지만, 개발자가 직접 그려야하는 경우도 무지 많답니다! 자! 그럼 결과물 먼저 보도록 하겠습니다. 결과물 이런 모양의 뷰를 그리고싶다! 하면 계속해서 포스팅을 읽어주세요 ㅎㅎ 1. 3개의 뷰 객체 생성 먼저, UIView를 3개 생..

안녕하세요~! iOS개발자 CNOO 입니다. 오늘은~~~ 제가 자주 활용하는 CompatMap에 대해서 알아보겠습니다. nil을 처리하는 방법은 다양합니다. 예제 1. let array = [1, 2, nil, 4, 5, nil] let nonNilArray1 = array.filter{ $0 != nil} let nonNilArray2 = array.flatMap{ $0 } let nonNilArray3 = array.compactMap{ $0 } print(array) // [Optional(1), Optional(2), nil, Optional(4), Optional(5), nil] print(nonNilArray1) // [Optional(1), Optional(2), Optional(4), Op..

안녕하세요! iOS 개발자 CNOO 입니다!! 오늘은 기기 자체 기능인 Torch에 대해서 알아보도록 하곘습니다. Torch랑 Flash는 어떻게 다를까요?? 애플 공식문서를 보면 그 차이가 명확하고 자세하게 서술되어있습니다. (물론 영어로요... ㅎㅎ) https://developer.apple.com/library/archive/documentation/AudioVideo/Conceptual/AVFoundationPG/Articles/04_MediaCapture.html 하지만, 갈길이 바쁜 저희 개발자들에게는 미리 읽어본 사람이 요약해주는 것이 인지상정 아니겠습니까? 1. Torch (손전등) 요약하자면 Torch는 우측 이미지와 같이, 손전등이 켜져있음이 유지되어있는 상태를 의미합니다. 저렇게 손..

안녕하세요!! 주말동안 잘 쉬셨나요? iOS개발자 CNOO 입니다!! 오늘은, Apple에서 제공하는 AVFoundation 모듈을 활용하여, Camera기능을 구현해보도록 하겠습니다. 오늘 구현해볼 것은 1. 카메라 프리뷰 2. 촬영버튼을 통한 촬영 크게 이렇게 두 가지 입니다. 렛터디에서 출석 사진을 등록하는 화면을 구현한 코드를 예시로 소개할 것입니다. 먼저, 구현된 화면을 보실게요~ 렛터디에서 출석사진 등록을 진행하는 화면입니다. 1. 카메라 접근 권한 요청 카메라 기능을 활용하기 위해서는, 사용자에게 카메라 접근 권한을 획득해야겠죠? 카메라 접근 권한과 관련해서는 제가 이전에 포스팅한 글을 참고해주세요! 2021.04.26 - [iOS/Swift] - [Swift] 카메라/사진 권한 요청 [Sw..

안녕하세요. iOS 개발자 CNOO 입니다. 오늘은 Swift에서 카메라 접근, 사진 접근 권한을 얻는 방법에 대해서 알아보려고 합니다. 1. 사진 접근 권한 기기에 있는 사진을 가지고 온다거나 할 때는 사진 권한이 필요합니다. 최종적으로는 presentImagePicker 라는 함수를 호출하는것이 목표입니다. 관련 코드는 다음과 같습니다. private func selectImage() { if #available(iOS 14, *) { PHPhotoLibrary.requestAuthorization(for: .readWrite) { status in if status == .authorized || status == .limited { self.presentImagePicker() } else { s..

안녕하세요. iOS개발자 CNOO입니다. 오늘은!!!! UIButton이 아닌, UIView에 클릭 이벤트를 추가하는 방법에 대해서 알아보고자 합니다! UIView를 상속받는 모든 View에 해당하는 방법이니까, 잘 보고 편하신 방법으로 구현하시면 되겠습니다. (사실 이 포스팅의 핵심은 RxGesture......예요.. 이거 엄청 좋습니다. RxSwift 와 ㄹㅇ찰떡궁합.) 샘플 화면 먼저 간단히 어떤 화면을 구현했는지 보겠습니다. 저는 간단히 파란 네모와 빨간 네모를 만들어서 클릭하는 이벤트를 적용해보았습니다. 클릭하면 아래와 같이 로그가 찍히는 예제입니다. 세가지 방법에 대한 설명을 모두 쭉 하고, 맨 아래쪽에 코르를 보여드리도록 하겠습니다. 방법1. Add UITapGestureRecognizer..

안녕하세요 iOS 개발자 CNOO 입니다. 오늘은 RxSwift의 .drive와 .subscribe의 차이점에 대해 알아보도록 하겠습니다~ 먼저 Drive의 공식 문서를 보시면 1. 오류를 내뱉지 않는다. 2. MainScheeduler에서 동작한다 (메인스레드 동작 보장) 3. 바인딩 되어있는 경우, 1회 동작을 보장한다. 정도가 되겠네요. 결론부터 말씀드리자면, Drive는 Main Thread에서 동작하는 것을 보장하기 때문에, UI 와 관련된 처리는 모두 Drive 로 처리해주시면 됩니다. 물론 subscribe를 사용하실 때도 Main Thread에서 동작하도록 슈거를 추가해주면 되는데, 해당 방법은 아래 예제를 통해 보여드리도록 하겠습니다. 심플하게 UITextField를 하나 화면에 추가해서..