[ios] Hex to RGB 안녕하세요. 프로젝트를 진행하다 보면 모든 뷰의 색을 인터페이스 빌더에만 의존하여 지정해주기는 불편한 감이 없지 않아 있습니다. 그래서 저는 평소에 프로젝트의 테마 색이라고 해서 Extension을 만들어서 사용했는데요. 하지만 제가 사용했던 방법도 마냥 편하지는 않아서 보다 편한 방법을 찾아보다가 알고 이해한 방법이 있어 이렇게 소개해드리려 합니다. 그럼 바로 시작해보도록 하겠습니다. Hexadecimal & RGB 색은 크게 이 두 가지로 표현할 수 있습니다. 물론 다른 방법들도 존재합니다. 하지만 오늘은 이 두 가지에 대해서만 다루도록 하겠습니다. 이 두 표현법은 서로 변환될 수 있으며 한 가지만 알면 다른 하나도 알 수 잇습니다. RGB 먼저 이해하기 쉬운 RGB부터..
[ios] 커스텀 탭바(TabBar) 만들기 안녕하세요. 오늘은 기본 TabBar가 아닌 커스텀 TabBar를 만들어보려 합니다. 안드로이드에서와는 다르게 iOS에는 TabBar는 하단에 고정되어있고 이는 변경할 수 없습니다. 그렇기 때문에 하단이 아닌 NavigationBar 밑이나 다른 곳에 위치시키기 위해서는 TabBar를 흉내 내는 뷰를 만들어주어야 합니다. 저는 이를 위해서 UICollectionView를 사용하였습니다. 또한 저는 공부 목적으로 만들어본 것이기 때문에 제가 사용한 방법이 정답이라고는 할 수 없으나 엇비슷하게 흉내는 내볼 수 있었습니다. 그럼 제가 만들어본 커스텀 TabBar를 소개해드리도록 하겠습니다. Implementation 저는 먼저 다음과 같은 뷰의 구성으로 TabBar..
[ios] CALayer 안녕하세요. 오늘은 iOS에서 상당히 중요한 역할을 하지만 생각보다 다룰일이 많이 없었던 UIView의 layer프로퍼티인 CALayer를 공부해보았고 제가 이해한 것을 바탕으로 기록을 해보고자 이렇게 글을 작성하게 되었습니다. 저는 layer 프로퍼티를 다뤄본 것이라고는 cornerRadius를 설정할 때와 AVPlayerLayer를 UIView에 추가를 해본 것이 전부였습니다. 그것을 사용할 때도 그저 이렇게 쓰나 보다 하여 사용했지 layer의 존재 이유와 그것이 정확히 어떤 역할을 하는지 알지 못하였습니다. 하지만 이번 기회를 통해 layer의 역할이 굉장히 중요하다는 것을 알게 되었습니다. 그럼 바로 시작해보도록 하겠습니다. Graphics in iOS 먼저 CALaye..
[ios] Cocoapods? Carthage? 안녕하세요. 많은 분들이 iOS 개발을 시작하실 때 Cocoapods를 통해 라이브러리를 사용하고 관리하실텐데요. 저 역시 아직은 iOS 공부를 시작한지 얼마되지 않아 Cocoapods만 사용하고 있습니다. 하지만 분명 Carthage라는 패키지 관리자도 존재하고 있었고 왜 Carthage가 존재하고 Carthage를 사용하는 이유가 무엇인지 궁금했습니다. 그래서 오늘은 평소에 궁금했던 두 패키지 관리자의 차이점과 용도가 궁금하여 구글링을 하던 중 괜찮은 글이 있어 제가 이해한 것을 바탕으로 몇 가지를 추가하여 소개해드리려 합니다. 원본의 링크가 궁금하시다면 이곳을 클릭하세요! 먼저 느낀점을 말씀드리자면 두 패키지 관리자는 별개의 것이 아니라 용도에 맞게 ..
[iOS BoostCourse] scaleAspectFill ? scaleAspectFit? scaleToFill 안녕하세요. 오늘은 뷰에 이미지 파일과 같이 컨텐츠를 올릴 때 한 번쯤은 만나게 되는 contentMode에 대해 공부해보았습니다. contentMode에는 scaleAspectFill, scaleAspectFit, scaleToFill 등의 여러 모드가 존재합니다. 저는 그저 하나씩 확인해보고 보기 괜찮다고 생각이 들면 사용했었는데요. contentMode에 대해 공부를 하고 이들의 차이점과 원리에 대해 알게 되어 이렇게 포스팅을 통해 기록을 하게 되었습니다. 바로 시작해보도록 하겠습니다. 공식 문서를 보고 이해한 것이라 번역투에 가까울 수 있으니 반드시 공식 문서를 참고하면서 같이 읽어주..
[ios] Animatable Properties 안녕하세요. 지난 포스팅에서 alpha의 값은 애니매이션 효과를 주기 위해서는 따로 layoutIfNeeded는 호출해주지 않아도 된다고 소개를 하였습니다. 그 이유로 alpha 속성은 built-in animation 속성 중 하나라고 했습니다. 오늘은 그 built-in animation과 관련한 Animatable Properties에 대해 공부해보는 시간을 갖도록 하겠습니다. 이번 포스팅은 공식 문서를 제가 이해한대로 번역하여 옮기는 방식으로 보다 자세한 내용은 공식 문서를 참고해주세요. Animations 오늘은 지난 포스팅에 연장선이기 때문에 반드시 해당 포스팅을 먼저 보시고 읽어주시기 바랍니다. [ios] setNeedsLayout vs la..
[ios] setNeedsLayout vs layoutIfNeeded 안녕하세요. 오늘은 애니매이션 동작에 대해 공부를 하면서 알게 된 내용 중 하나인 setNeedsLayout과 layoutIfNeeded에 대해 포스팅해보려 합니다. 아직은 모든 궁금증이 풀린 것은 아니지만 하나하나 알게 된 것들을 소개해드리도록 하겠습니다. setNeedsLayout과 layoutIfNeeded를 비교하기 위해서는 먼저 main run loop라는 개념부터 알고있어야 합니다. Main Run Loop 어플리케이션이 실행되면 iOS의 UIApplication이 매인 스레드에서 main run loop를 실행시킵니다. main run loop는 돌아가면서 터치 이벤트, 위치의 변화, 디바이스의 회전 등의 각종 이벤트들을 ..
[ios] File System (2) 안녕하세요. 지난 번 iOS의 파일 시스템의 포스팅에서는 전반적인 구조와 개념을 알아보았습니다. 오늘은 본격적으로 코드를 통해 파일 시스템을 다루어보도록 하겠습니다. 지난 포스팅을 보지 않으신 분들은 해당 포스팅을 먼저 읽어보시는 것을 추천드립니다. [ios] File System (1) 지난 포스팅에서 언급하였듯이 iOS는 각각의 어플리케이션들이 샌드박스 형태로 존재하므로 특별한 경우가 아닌 이상 본인의 영역 외의 공간에는 접근할 수 없습니다. 오늘의 포스팅에서는 iOS내의 파일 시스템을 다루기 위해 FileManager 클래스를 사용할 것입니다. FileManager란 FileManager 클래스는 iOS 내에서 파일과 디렉토리의 생성, 이동, 읽기, 쓰기 행위..
- Total
- Today
- Yesterday
- storyboard
- 스위프트
- notificationcenter
- 아이폰
- 클로저
- Codable
- TableView
- edwith
- IOS
- UIResponder
- 프로토콜
- Algorithm
- segue
- Swift
- CRUD
- 테이블뷰
- UIControl
- oauth2.0
- Xcode
- 알고리즘
- 오토레이아웃
- Operating System
- Protocol
- 운영체제
- boostcourse
- 부스트코스
- nodejs
- 백준
- auto layout
- iPhone
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |