목록iOS/Swift (13)
clyne의 개발 기록
안녕하세요. iOS 개발자 CNOO 입니다! 오늘은 간단하게, 아이폰의 Top Notch 및 Bottom Notch의 높이를 구하는 코드를 작성해보도록 하겠습니다. 노치란?? static func bottomNotchHeight() -> CGFloat { if #available(iOS 11.0, tvOS 11.0, *) { return UIApplication.shared.delegate?.window??.safeAreaInsets.bottom ?? 0 } return 0 } static func TopNotchHeight() -> CGFloat { if #available(iOS 11.0, tvOS 11.0, *) { return UIApplication.shared.delegate?.window??..

안녕하세요! iOS 개발자 CNOO입니다!! 오늘은 UILabel 안에 있는 Text의 가로 길이와 세로 길이를 구하는 방법에 대해서 공유드리고자 합니다. UILabel의 크기를 동적으로 변경해야하거나, 동적으로 Inset을 주기 위해, 텍스트의 가로 길이를 구해서, UILabel의 width를 변경하기도 합니다. 저는 사용하기 쉽도록 UILabel의 확장함수로 getTextWidth 를 만들어서 사용하고있습니다. extension UILabel { func getTextWidth() -> CGFloat { if let text = self.text, let font = self.font { return text.size(withAttributes: [NSAttributedString.Key.font :..

안녕하세요!!! 오늘도 어김없이 돌아온 iOS 개발자 CNOO입니다!! 오늘 여러분께 소개해 드릴 것은 바로바로~~~~~~~~~ UIAlertViewController에 이미지 넣기 입니다! 선택지에도 넣고, 타이틀 쪽에도 넣고~~ 하는 방법입니당 먼저, 구현된 결과물 부터 보고 시작하도록 하겠습니다. 아래 Alert은 렛터디 내 1:1 쪽지함에서 구현한 Alert의 일부입니다. 요것을 구현해보도록 하겠습니다 ㅎㅎ 1. UIAlertController를 상속받는 MyAlertController 생성 저는 여기서 렛터디의 앞글자를 따서 LTAlertController라고 칭했습니다. 원하시는 것으로 클래스를 생성하시면 됩니다. class LTAlertController: UIAlertController {..

안녕하세요~! iOS 개발자 CNOO입니다!! 오늘은, UIView에 shadow 효과를 넣는 방법에 대해서 알아보겠습니다! UIView를 상속하는 모든 뷰들에 적용할 수 있으니, 원하시는 곳에 구현하셔서 사용하시면 되겠습니다! :) 먼저 구현하고자 하는 결과물부터 보여드리겠습니다~ 스터디 개설하기 버튼을 보시면, 버튼이 붕 떠있는 것 처럼 그림자 효과가 들어가있는 것을 보실 수 있습니다. 구현코드 view.layer.shadowOpacity = 0.4 // 투명도 view.layer.shadowOffset = CGSize(width: 5, height: 5) // 그림자 위치 view.layer.shadowRadius = 10 // 그림자 모서리 꺾임 정도 view.layer.masksToBounds ..

안녕하세요. 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는 우측 이미지와 같이, 손전등이 켜져있음이 유지되어있는 상태를 의미합니다. 저렇게 손..