본문 바로가기

분류 전체보기

(17)
ios 플링 애니메이션 만들기 - 2 앞서 작성한 코드에 다음과 같은 문제가 있었는데요, 이 문제들을 모두 수정해 보도록 하겠습니다.1. 살짝 플링을 해도 매우 빠르게 스크롤이 됨   - UIPanGestureRecognizer가 계산해 주는 velocity가 굉장히 큰 값으로 전달되기 때문에 스케일링 처리가 필요합니다. 테스트해 보니 0.03배로 값을 축소하는 것이 좀 자연스럽게 이동하는 것 같습니다.2. 스크롤이 멈추었는데도 targetPos 로그가 계속해서 출력이 됨    - 지수함수 특성상 결과값이 0으로 수렴하기는 하지만 절대 0이 되지는 않기 때문에, 속도가 충분히 줄어들면 무의미한 화면 갱신을 방지하기 위해 강제로 멈추는 방어 코드가 필요합니다.1번에서 계산한 속도값이 0.1보다 작아지면 유의미한 위치변화가 없는 것을 확인하였으..
ios 플링 애니메이션 만들기 - 1 android의 경우 Scroller나 FlingAnimation 라이브러리를 이용하여 다음과 같은 플링 애니메이션 처리를 할 수가 있습니다.헌데, iOS는 관련 라이브러리를 제공하지 않아서 직접 만들어보고자 합니다. 이를 위해 응용할 수학공식은 지수함수입니다. 이 지수함수가 실제 공이나 자동차가 굴러가다가 멈추는 동작을 굉장히 비슷하게 표현한다고 합니다.각 프레임이 지남에 따라 처음에는 빠르게 속도가 줄어들다가 나중에는 점점 느리게 속도가 줄어들도록해야 하는데요, 이를 간단하게 코드로 표현을 해 보면 다음과 같습니다.var velocity: CGFloat = 100; // 초기속도 (100px/frame)let deceleration: CGFloat = 0.95; // 감속계수 (5%씩 감소)for..
5. iOS Radar Chart에 Animation 적용하기 이전에 작성한 chart들이 너무 간단해서, 조금 역동적이게 보일 수 있도록 간단한 애니메이션을 추가해보고자 합니다. 전에 작성했던 Radar Chart를 활용할 건데요, 이 글을 꼭 보고 와주세요~ 2022.06.17 - [iOS/차트그리기] - 4. iOS Radar Chart 직접 그리기 4. iOS Radar Chart 직접 그리기 음... 오늘은 Radar Chart(방사형 차트)를 그려볼까 합니다. 게임에서 캐릭터들의 능력치를 표시할때 흔히 보던 차트입니다. File -> New File -> iOS -> Cocoa Touch Class 메뉴를 통해, 다음과 같이 RadarChar.. jyys.tistory.com 이 Radar Chart는 5개의 특성을 가지고 있는데요, 다음 영상처럼 각..
iOS ValueAnimator 만들기 - 2 앞서 ValueAnimator를 만들어보았는데요, 이름 조금 더 보완해 보려 합니다.2022.07.04 - [iOS/기타] - iOS ValueAnimator 만들기 - 1 기존 ValueAnimator는 각 animator객체마다 타이머가 수행되기 때문에, animator가 많아질수록 타이머도 그만큼 여러 개가 동시에 수행이 되는 문제(?)가 있습니다. 아무래도 타이머가 많아지면 많아질수록 성능 저하가 조금은 발생할 수 있을 것 같습니다. 그래서 타이머는 1개만 생성하여 모든 ValueAnimator가 공유할 수 있도록 변경하고자 합니다. 1개의 타이머에서 여러개의 ValueAnimator에 접근할 수 있어야 하므로, ValueAnimator 목록을 Set으로 관리할 수 있도록 변경해 보겠습니다. 먼저..
iOS ValueAnimator 만들기 - 1 이전 글에서 CABasicAnimation을 이용하여 custom property에 애니메이션을 적용하는 법을 알아보았습니다. 2022.07.04 - [iOS/기타] - iOS CABasicAnimation을 이용한 custom property 애니메이션 처리 헌데 이를 이용하기 위해서는 CALayer가 반드시 필요한데요, 때에 따라서는 CALayer 없이 custom property 애니메이션 처리가 필요한 경우도 있을 수 있습니다. 그래서, 오늘은 CABasicAnimation이나 UIView.animate를 이용하지 않고 직접 애니메이션 처리를 해 보고자 합니다. (Android에서 제공하는 ValueAnimator와 유사하게 이용할 수 있는 animator를 만들 예정입니다.) 오늘도 프로그래스바..
iOS CABasicAnimation을 이용한 custom property 애니메이션 처리 iOS에서 애니메이션 처리를 하기 위해서는 다음과 같이 보통 UIView.animate()나 CABasicAnimation을 이용하게 됩니다. 1. myView의 alpha값을 0부터 1까지 애니메이션 적용 myView.alpha = 0 UIView.animate(withDuration: 0.2) { myView.alpha = 1 } 2. imageVIew 회전 애니메이션 적용 let rotateAnimation = CABasicAnimation(keyPath: "transform.rotation") rotateAnimation.fromValue = 0.0 rotateAnimation.toValue = CGFloat(Double.pi * 2) rotateAnimation.isRemovedOnComplet..
5. Android Radar Chart에 Animation 적용하기 이전에 작성한 chart들이 너무 간단해서, 조금 역동적이게 보일 수 있도록 간단한 애니메이션을 추가해보고자 합니다. 전에 작성했던 Radar Chart를 활용할건데요, 이 글을 꼭 보고 와주세요~ 2022.06.28 - [Android/차트그리기] - 4. Android Radar Chart 직접 그리기 4. Android Radar Chart 직접 그리기 오늘은 Radar Chart(방사형 차트)를 그려볼까 합니다. 게임에서 캐릭터들의 능력치를 표시할때 흔히 보던 차트입니다. 먼저 다음과 같이 RadarChartView라는 Custom View를 생성하고, onDraw함수를 override해 jyys.tistory.com 이 Radar Chart는 5개의 특성을 가지고 있는데요, 다음 영상처럼 각 ..
iOS 14 사진 접근권한 요청하기 iOS 14부터는 사진 접근권한 요청 시 다음과 같이 유저가 선택한 사진만 접근할 수 있도록 하는 메뉴("사진 선택...")가 추가되었습니다. 유저가 "사진 선택..."메뉴를 클릭하여 사진을 선택한 이후 앱을 재구 동하여 다시 권한 요청을 하면 status가 limit로 전달이 될 뿐 앱에서 다시 사진을 선택할 수 없는 상태가 되어 버려 당혹스러웠는데요, 이를 어떻게 해결했는지 정리해 보려 합니다. (Info.plist에 NSPhotoLibraryUsageDescription 추가하는 법은 skip 하겠습니다.) 현재 사진 접근권한 상태 조회 앱 구동 시 현재 사진 접근권한의 상태를 먼저 조회하여 status가 notDetermined인 경우만 사진 권한 요청을 하도록 할 예정인데요, notDetermi..