일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- UITextView
- tableView
- RxCocoa
- collectionview
- UICollectionView
- 리팩토링
- Clean Code
- 클린 코드
- 리펙터링
- ribs
- 스위프트
- combine
- swiftUI
- 애니메이션
- ios
- map
- Refactoring
- uiscrollview
- Xcode
- SWIFT
- Protocol
- Human interface guide
- clean architecture
- Observable
- uitableview
- 리펙토링
- rxswift
- swift documentation
- MVVM
- HIG
- Today
- Total
목록애니메이션 (18)
김종권의 iOS 앱 개발 알아가기
1. long press gesture와 애니메이션 - 드래그 구현 방법 (snapshotView, CGAffineTransform) 2. long press gesture와 애니메이션 - 드래그할때 다른 뷰 줄어들고, 해당 뷰 크게하기 (UIView.animate, CGAffineTransform, concatenating) 3. long press gesture와 애니메이션 - 드래그와 cornerRadius, shadow 효과 (CABasicAnimation) 4. long press gesture와 애니메이션 - UIStackView에 DragDrop 적용 (DragDropStackView 구현) 5. long press gesture와 애니메이션 - gesture 도중 화면 끝으로 가면 자동으로..
1. long press gesture와 애니메이션 - 드래그 구현 방법 (snapshotView, CGAffineTransform) 2. long press gesture와 애니메이션 - 드래그할때 다른 뷰 줄어들고, 해당 뷰 크게하기 (UIView.animate, CGAffineTransform, concatenating) 3. long press gesture와 애니메이션 - 드래그와 cornerRadius, shadow 효과 (CABasicAnimation) 4. long press gesture와 애니메이션 - UIStackView에 DragDrop 적용 (DragDropStackView 구현) 4. long press gesture와 애니메이션 - gesture 도중 화면 끝으로 가면 자동으로..
UIView.animate와 UIView.transition 차이 UIView.animate 뷰의 상태에 관한 프로퍼티 변환에 대해서 적용 ex) alpha, backgroundColor 값 변경 UIView.transition 뷰를 다른 뷰로 '변경'할 때 애니메이션 적용 ex) 뷰 변경, UIImage 변경 (UIImage는 뷰가 아니지만 UIView.animate는 동작 안하는것을 주의) UIView.transition에서만 적용되는 것 UIView.transition을 사용하면 UIView.animate에서 되는 것들은 모두 되므로, UIView.transition에서만 되는 것을 파악하는 것이 중요 ex) 예제에 사용할 뷰 준비 import UIKit class ViewController: UI..
목차) SwiftUI의 기본 - 목차 링크 Animatable 프로토콜이며 animatableData 프로퍼티를 가지고 있는 프로토콜 특정 값을 뷰에 주입하면, animatable 프로토콜을 통해 미리 정해둔 값을 이용하여 내부적으로 계산하여 미리 애니메이션에 사용할 데이터를 정의해둔다는 의미 /// A type that describes how to animate a property of a view. @available(iOS 13.0, macOS 10.15, tvOS 13.0, watchOS 6.0, *) public protocol Animatable { /// The type defining the data to animate. associatedtype AnimatableData : Vecto..
GeometryReader ContainerView이며, 내부에 UIView들의 layout을 쉽게 변경할 수 있는 역할 * GeometryReader를 안쓴 경우) Stack안에 두가지의 뷰가 들어가고, Rectangle이 하단의 모든 자리를 차지하는 형태 struct Example: View { var body: some View { VStack { Text("example GeoMetryReader") Rectangle() .foregroundColor(.green) } } } struct Example_Previews: PreviewProvider { static var previews: some View { Example() } } GeometryReader를 사용한 경우) GeometryRe..
애니메이션에 사용할 모양 정의 SwiftUI에는 대표적으로 4가지의 모양을 쉽게 사용이 가능 Capsule() Circle() Rectangle() RoundedRectangle(cornerSize:) var body: some View { Capsule() .fill(color) .frame(height: 70) Circle() .fill(.red) .frame(width: 100, height: 100) Rectangle() .fill(.green) .frame(width: 100, height: 100) RoundedRectangle(cornerSize: .init(width: 12, height: 12)) .fill(.blue) .frame(width: 100, height: 100) } 이 중에..
구현 아이디어 테두리에 관한 윤곽 레이아웃을 구하기 위해서 UIBezierPath를 사용 이 UIBezierPath의 cgPath값을 밑에 CAShapeLayer에서 사용 테두리에 도는 애니메이션을 적용하기 위해서 2가지의 CAShapeLayer를 사용 회색 선을 타나내는 CAShapeLayer 파란색으로 색상이 채워지는 CAShapeLayer CAShapeLayer 준비 회색 선 layer의 strokeEnd 값은 1.0으로 놓으면 원으로 칠해져 있는 상태 파란색 색상 layer의 strokeEnd 값의 초기값은 0으로 놓고, CABasicAnimation의 "strokeEnd" 애니메이션을 통해서 1초마다 strokeEnd값이 채워지도록 구현 커스텀뷰 필요한 요소 준비 윤곽 레이아웃 path 상태를 ..
트랜잭션의 의미 트랜잭션: 원자성, 일관성, 독립성, 지속성을 갖춘 Operation 원자성(atomic): 부분적으로 실행되다가 중단되지 않는 것을 보장하는 능력 ex) A사람이 B사람에게 돈을 보내는 작업을 한 경우, A사람은 돈이 빠져나갔지만 B사람한테 돈이 전달되지 않은 경우, 원자성 위배 일관성(Consistency): n번 Operation을 했을 때 기대하는 값이 모두 일관적으로 동일해야함 독립성(Isolation): Operation 수행 시 다른 작업이 끼어들지 못하게 하는 것 지속성(Durability): 성공적으로 수행된 Operation은 영원히 반영 애플의 CATransaction 트랜잭션에서 atomic (부분적으로 실행되다가 중단되지 않는 것을 보장) 특성을 따르며, layer..