본문 바로가기

iOS15

팬제스처와 네비게이션 팝(뒤로가기) 제스처가 상충되는 문제 해결하기 문제 현재 회사에서 개발중인 앱에는 가로 스크롤이 가능한 스크롤뷰(콜렉션뷰 포함)들이 각 화면에 다양하게 존재하고 있습니다. 문제는 기기의 왼쪽 엣지를 오른쪽으로 쓸어넘겨서 뒤로가기(interactivePopGesture)를 하고 싶어도 할 수가 없고 스크롤뷰의 가로방향 팬제스처만 인식한다는 겁니다. 특히 화면 전체를 가로 스크롤 가능한 콜렉션뷰가 덮고 있는 화면들이 좀 있는데요. 이 경우에는 특히나 사용성이 떨어집니다. 반드시 좌상단에 있는 뒤로가기 버튼을 탭해줘야만 네비게이션의 이전 스택으로 팝을 할 수 있기 때문이죠. 해결 방법은 간단합니다. UIGestureRecognizerDelegate의 메소드 중 두 제스처인식기가 인식되었을 때 그 중 하나의 인식을 실패하게 할 지를 결정하는 메소드 gest.. 2020. 7. 4.
[WWDC20] Advances in diffable data sources Advances in diffable data sources - WWDC 2020 - Videos - Apple Developer Advances in diffable data sources - WWDC 2020 - Videos - Apple Developer Diffable data sources dramatically simplify the work involved in managing and updating collection and table views to create dynamic and... developer.apple.com 개요 이 비디오에서는 iOS 14 용 Diffable Data Source의 발전에 대해 다루고 있습니다. 샘플코드를 실행하면 첫 번째 섹션에는 가로로 스크롤되는 이모.. 2020. 6. 28.
[WWDC20] Lists in UICollectionView Lists in UICollectionView - WWDC 2020 - Videos - Apple Developer Lists in UICollectionView - WWDC 2020 - Videos - Apple Developer Learn how to build lists and sidebars in your app with UICollectionView. Replace table view appearance while taking advantage of the full... developer.apple.com 영문세션을 번역하였습니다. 오역이 있을 수 있습니다. 잘못된 부분이 있다면 알려주세요! 본 세션에서는 다루지 않는 내용을 배울 수 있는 세션들은 무엇이 있는지 알려줍니다. 학습에 참고하세요. .. 2020. 6. 25.
[ARKit] Sample Code: Placing Objects and Handling 3D Interaction https://developer.apple.com/documentation/arkit/placing_objects_and_handling_3d_interaction Placing Objects and Handling 3D Interaction | Apple Developer Documentation Sample Code Placing Objects and Handling 3D Interaction Place virtual content at tracked, real-world locations, and enable the user to interact with virtual content by using gestures. Download OverviewThe key facet of an AR experi.. 2020. 6. 21.
[ARKit]Ray-Casting Ray-Casting and Hit-Testing Raycasting and Hit-Testing | Apple Developer Documentation Raycasting and Hit-Testing Find points on real-world surfaces given a screen location. OverviewRaycasting is the preferred method for finding positions on surfaces in the real-world environment, but the hit-testing functions remain present for compatibilit developer.apple.com ARRaycastQuery 실제 세계의 표면에서 3D 위치를 .. 2020. 6. 21.
[ARKit] Scene Understanding ehdrjsdlzzzz/ARKit-example protocorn93/ARKit-example Studying ARKit. Contribute to protocorn93/ARKit-example development by creating an account on GitHub. github.com 개요 면 감지(Plane Detection) 만일 하나의 테이블이 존재하고 그 위에 오브젝트를 하나 올린다고 하자. 우리는 이 테이블을 인식할 필요가 있고 이 테이블을 하나의 면(Plane)이라고 인식해야 오브젝트를 단순히 띄우는 것이 아닌 테이블 위에 올려놓을 수 있다. Hit-testing 이렇게 면이 감지되면 오브젝트를 위치시키는데 필요한 3D 좌표점을 찾아야 하는데 이를위해 사용되는 것 이러한 좌표점은 디.. 2020. 6. 21.
RxSwift to Apple’s Combine “Cheat Sheet” https://medium.com/gett-engineering/rxswift-to-apples-combine-cheat-sheet-e9ce32b14c5b RxSwift to Apple’s Combine “Cheat Sheet” Get started with Apple’s Combine with your existing RxSwift knowledge medium.com RxSwift와 Apple의 Combine을 위한 양방향 유형의 브리징을 위한 개념 증명을 제공하는 RxCombine이라는 라이브러리를 출시했는데, 필요에 따라 코드에 있는 두 유형을 혼합하고 일치시킬 수 있다. RxSwift와 콤바인 사이에 직접 관련이 있는 것들을 지도화하려고 한다. 이것이 실제적인 마이그레이션 과정을 훨씬 더 쉽게 .. 2020. 6. 16.
Combine framework First look at Apple's new Combine framework - Q42 Engineering - Medium Combine | Apple Developer Documentation RxSwift와 Combine 비교 RxSwift에서 새로운 입력 Observables를 만드는 것은 매우 쉽습니다. 예를 들어 다음과 같이 할 수 있습니다. // Using RxSwift Observables let observable: Observable = Observable.create { observer in // 비동기 아무거나. (예를 들면 네트워크 요청) DispatchQueue.main.asyncAfter(deadline: .now() + .seconds(2), execute: { observ.. 2020. 6. 16.
SwiftUI - Introduction SwiftUI by Example - free quick start tutorials for Swift developers SwiftUI란 무엇인가? SwiftUI는 선언적 방식으로 앱을 디자인 할 수 있는 사용자 인터페이스 툴킷입니다. 명령형 UI (Imperative UI) 버튼을 클릭할 때 함수를 호출 할 수 있고 함수 내부에서 값을 읽고 레이블을 표시한다. 정기적으로 사용자 인터페이스의 모양과 동작을 변경해야 한다. 명령형 UI는 모든 종류의 문제를 일으키는데 대부분의 문제는 상태(코드에 저장한 값)를 기반으로 발생합니다. 코드의 상태를 추적하고 사용자 인터페이스가 해당 상태를 올바르게 반영하는지 확인해야합니다. UI에 영향을 주는 두 개의 Bool 속성이 있는 화면에서 Bool은 4가지 상태가 .. 2020. 6. 15.
Concurrency Problems - Concurrency by Tutorials Chapter 5: Concurrency Problems Concurrency by Tutorials In this part of the book, you're going to learn about the basics of Concurrency. You're going to learn what it is, what kind of problems it solves, and why would you even use it? Further, you will learn the basic pieces of which Concurrency comprises in Cocoa development: Grand Central Dispatch and Operations. https://store.raywenderlich.c.. 2020. 6. 14.
Groups & Semaphores - Concurrency by Tutorials Chapter 4: Groups & Semaphores Concurrency by Tutorials In this part of the book, you're going to learn about the basics of Concurrency. You're going to learn what it is, what kind of problems it solves, and why would you even use it? Further, you will learn the basic pieces of which Concurrency comprises in Cocoa development: Grand Central Dispatch and Operations. https://store.raywenderlich.co.. 2020. 6. 14.
Queues & Threads - Concurrency by Tutorials Chapter 3: Queues & Threads Concurrency by Tutorials In this part of the book, you're going to learn about the basics of Concurrency. You're going to learn what it is, what kind of problems it solves, and why would you even use it? Further, you will learn the basic pieces of which Concurrency comprises in Cocoa development: Grand Central Dispatch and Operations. https://store.raywenderlich.com/p.. 2020. 6. 14.
UIGestureRecognizerDelegate [ios] Handling UIKit Gestures [ios] Handling UIKit Gestures Handling UIKit Gestures Gesture recognizer를 사용하는 것은 뷰에서 발생하는 Touch나 Press 이벤트를 다룰수 있는 가장 간단한 방법입니다. 어떤 뷰든간에 한 개 혹은 복수 개의 Gesture에 대한 recognizer를.. baked-corn.tistory.com iOS ) ScrollView에서 위아래 Gesture를 감지하고싶다면? / UIGestureRecognizerDelegate iOS ) ScrollView에서 위아래 Gesture를 감지하고싶다면? / UIGestureRecognizerDelegate 안녕하세요 :) Zedd입니다. 알아두면 좋은 .. 2020. 3. 5.
[UIKit] 'App' and 'Scenes' 개요 iOS 13이상에서는 유저가 앱UI의 여러 인스턴스를 동시에 만들고 관리 할 수 있으며, app switcher를 통해 전환도 할 수 있습니다. app Switcher란 홈버튼 더블클릭, 인디케이터바를 위로 스와이프 해서 나오는 화면을 말합니다. iPad에서는 유저가 여러개의 인스턴스를 나란히 표시 할 수도 있습니다. UI의 각 인스턴스마다 다른내용, 다른방식으로 표시됩니다. 예를 들어 캘린더 앱은 특정 날짜와 특정 달에 대한 약속을 동시에 보여줄수 있습니다. 이전에는 한 앱을 동시에 켜는 것이 불가능 하였습니다. UIkit은 UIWindowScene객체를 이용하여 앱 UI의 각 인스턴스를 관리합니다. Scene에는 UI의 한 인스턴스를 표시하는데 필요한 windows와 view controller.. 2020. 3. 4.
UINavigationController push 할 때 이미지 확대/축소 전환효과주기 (+ interactive) masamichiueta/FluidPhoto Create transition and interaction like iOS Photos app I. class 구조 만들기 class ZoomTransitionController UIViewControllerTransitioningDelegate 또는 UINavigationControllerDelegate를 구현하고 전환을 관리합니다. class ZoomAnimator UIViewControllerAnimatedTransitioning 및 줌 애니메이션 논리를 구현합니다. ZoomAnimator는 ZoomTransitionController의 속성입니다. 두 클래스에서 ZoomAnimator 와 ZoomTransitionController 를 분리 한 이유 .. 2020. 1. 26.