이 글의 목적은 header, footer가 있는 collectionview를 Paging 또는 Carousel 또는 Snap 하기--!! 인데요, 점진적으로(??) 설명하겠습니다. [1] cell 간 spacing이 없는 CollectionView (화면 사이즈와 cell 사이즈가 같은 collectionView) cell size가 화면 size와 같다면 collectionView.pagingEnabled = true로 하면 이렇게 center로 스크롤이 잘 멈춥니다. [2] cell 간 spacing이 있는 collectionView 하지만 이런식으로 셀들간의 spacing을 주게 된다면 let collectionViewLayout: UICollectionViewFlowLayout = { let l..
스냅킷 쓰다가 평소에 헷갈렸던 것 기록해두기-!! ✏️ [1] translatesAutoresizingMaskIntoConstraints = false 안해도 되는지 스냅킷을 안쓰면 코드로 constraints를 잡을때, translatesAutoresizingMaskIntoConstraints = false를 명시적으로 해줘야하잖아요..!! 스냅킷은 translatesAutoresizingMaskIntoConstraints = false 를 내부에서 알아서 해줍니다. 스냅킷의 LayoutConstraintItem 파일에 가보시면 있습니다. 그래서 스냅킷 쓸때는 translatesAutoresizingMaskIntoConstraints = false 안해줘도 됩니다. [2] offset과 inset의 차..
디자이너와 이미지 필터만드는 방법 에서 이어집니다-!! ⚠️ 정확히 이해못했는데, 기록용으로 쓰는 것이라서 자세한 설명을 기대하지 마시오 ⚠️ ⚠️ Metal로 하는법은 제대로 안나오고 있으니 따라하지 마시오 ⚠️ [1] Lut Image 프로젝트에 넣어주기 여기서 35 FREE LUTs를 다운받아주세요-! 디자이너분이 포토샵 작업 후 35개의 Lut image를 주셨다고 가정합니다. 이렇게 넣어주세요 그리고 Lookup 이라는 enum을 만들어주세요 enum Lookup: String, CaseIterable { case GamingCareers_Acevdeo case GamingCareers_Barrera case GamingCareers_Brewer case GamingCareers_Brooks c..
평소 카메라 앱들을 보고 디자이너나 여행작가가 필터 디자인을 하면 개발자가 개발하는 프로세스?!? 는 어떻게 될까 너무 궁금했는데요. 상용 카메라 앱 개발 경험이 있으신 개발자분이 알려주셨습니다...!! (감사합니당..>__ 여기서 35 FREE LUTs를 다운 받을 수도 있습니다. [3] LUT cube파일을 png파일로 변환하기 포토샵에서 쉽게 할 수 있다고 합니다. 2번에서 만든 CUBE LUT 파일을 로드해줍니다. png로 저장해줍니다. 출처: streamshark.io/obs-guide/converting-cube-3dl-lut-to-image Convert a CUBE or 3DL LUT to a PNG Image Follow our step by step guide on how to conv..
CIWarpKernel은 CIKernel 의 서브클래스로 이미지에서 geometry 관련 정보만 프로세싱 할 때 쓰인다고 합니다. Warp라는 단어는 " (원래의 모습을 잃고) 휘게 만들다" 라는 뜻을 가지고 있습니다. [1] input type Core Image Kernel Language에서는 input 파라미터가 필요없는 것같고 Metal Shading Language에서는 input type이 destination인데, destination은 float2를 의미합니다. [2] return type 이미지 좌표의 포지션을 리턴해줍니다. Core Image Kernel Language에서는 리턴타입이 vec2, Metal Shading Language에서는 리턴타입이 float2 입니다. => 아래..
CIBlendKernel는 CIColorKernel의 서브클래스입니다. 두개의 이미지를 blending (혼합) 하는데 사용한다고 합니다. [1] input type 두개의 파라미터를 가집니다. (foreground image와 background image) Core Image Kernel Language 라면 인풋 타입이 __sample Metal Shading Language 라면 인풋 타입이 sample_t 입니다. [2] return type pixel color for the output image를 리턴합니다. Core Image Kernel Language 라면 리턴 타입이 vec4 Metal Shading Language 라면 리턴 타입이 float4 입니다. [3] 예제 Backgrou..
[CoreImage] 기본 필터 & 커스텀 필터 (OpenGL, Metal) 적용하기 이 포스팅에서 커스텀 필터 만들때, CIColorKernel 를 썼는데 더 자세히 알아보려고 합니다..! CIColorKernel은 CIKernel 의 서브클래스로 이미지 프로세싱에서 딱 컬러값만 프로세싱해주고 싶을 때 사용합니다. [1] input type 0개 이상의 input images들을 받을 수 있습니다. 각각의 input image는 특정 타입의 파라미터로 표현됩니다. Core Image Kernel Language (OpenGL Shading Language) 에서는 파라미터 타입이 __sample 이고 Metal Shading Language 에서는 파라미터 타입이 sample_t 입니다. __sampl..
[1] 기본 필터 Core Image 는 이미지 프로세싱을 위한 기술입니다. 내장된(built-in) 이미지 필터를 사용해서 이미지를 프로세싱할 수 있고 여러가지 이미지 필터를 체이닝해서 복잡한 효과를 낼 수 도 있다고 합니다. Core Image Filter Reference 에서 빌트인 이미지 필터들이 어떤 것이 있는 지 볼 수 있습니다. 필터를 적용하기 위해, Core Image에서 이렇게 세개가 핵심 개념입니다 앱에 milk라는 이미지를 넣어줬구요 CISepiaTone이라는 필터를 사용해보겠습니다. 이런 결과가 나오게 됩니다 위의 코드는 총 3단계를 진행했습니다. 1. input으로 들어갈 이미지를 CIImage로 변환하여 준비 2. 쓰고 싶은 빌트인 필터 고르고 아래의 key,value 값 설정..
UIKeyCommand 는 하드웨어 키보드에서 수행되는 키 누름과 그에 따른 동작을 지정하는 객체라고 합니다. 이것을 통해서 키보드의 방향키를 인지하게 할 수 도 있고 원하는 단축어를 만들 수도 있는 것 같아요 다양하게 많이 할 수 있지만, 우선 오늘 알게 된 키보드 화살표 키를 인지하는 것을 간단히 정리-!! 1. keyCommands를 오버라이딩 하기 keycommands를 오버라이딩 하여서 원하는 keyCommand와 동작을 지정해줄 수 있습니다. 2. addKeyCommand 하기 UIViewController의 addKeyCommand 함수를 이용해서 원하는 keyCommand와 동작을 지정해줄 수 있습니다. [다른 키 + 방향키를 인지하고 싶다면] 그럴땐 modifierFlags를 이용해주면 ..
이렇게 titleView를 넣으면 left, right 간격이 알아서 적당히 잡힙니다 . 하지만, 이렇게 left, right spacing을 내가 원하는 만큼 지정해주고 싶으면 어떻게 해야할까요...?!? 저는 100씩 지정해주고 싶습니다..! titleView의 width를 "화면의 width값 - 100 *2" 로 지정해줄 수 있겠습니다. 하지만 멀티태스킹 모드에서 뷰사이즈가 계속 변하는 것을 고려해볼때, 위와 값이 고정된 width값을 넣어주면 left, right spacing은 고정이고 flexible하게 네비게이션 타이틀뷰 사이즈가 변하는 효과를 기대할 수 없습니다. 그럴땐 아래와 같이 해줄 수 있습니다. window가 생기는 시점인 layoutSubview 함수에서 titleview의 wi..
- Total
- Today
- Yesterday
- DRF APIException
- Django Firebase Cloud Messaging
- cocoapod
- Watch App for iOS App vs Watch App
- METAL
- Flutter Clipboard
- 장고 Custom Management Command
- ribs
- flutter deep link
- SerializerMethodField
- Django Heroku Scheduler
- 구글 Geocoding API
- Python Type Hint
- Flutter 로딩
- 플러터 싱글톤
- github actions
- Flutter Spacer
- Dart Factory
- drf custom error
- Django FCM
- Flutter getter setter
- Flutter Text Gradient
- flutter build mode
- Sketch 누끼
- flutter 앱 출시
- flutter dynamic link
- PencilKit
- 플러터 얼럿
- ipad multitasking
- 장고 URL querystring
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |