일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- Human interface guide
- ios
- Clean Code
- 애니메이션
- UITextView
- ribs
- collectionview
- SWIFT
- combine
- 스위프트
- UICollectionView
- uitableview
- clean architecture
- 클린 코드
- MVVM
- map
- RxCocoa
- swiftUI
- Refactoring
- tableView
- HIG
- Xcode
- 리팩토링
- Protocol
- rxswift
- Observable
- uiscrollview
- 리펙토링
- 리펙터링
- swift documentation
- Today
- Total
목록ios (1096)
김종권의 iOS 앱 개발 알아가기

* 이미지 없이 직접 구현하는 방법은 이전 포스팅 글 참고 회전 indicator 구현 아이디어 indicator 이미지를 준비 indicator이미지를 CABasicAnimation의 transform.rotation을 이용하여 이미지를 회전시켜서 구현 구현 assets에 indicator 이미지 준비 ViewController에 UIImageView 준비 import UIKit class ViewController: UIViewController { private let loadingImageView = UIImageView(image: UIImage(named: "loading")) } UIImageView를 화면 정 중앙에 위치 override func viewDidLoad() { super.vi..

툴팁 구현 아이디어 UILabel과 삼각형 뷰인 tipView를 감싸는 containerView를 만들고 두 개를 집어넣기 tipView의 구현은 draw(_ rect: CGRect) 메소드에서 UIBezierPath()로 선을 긋고 fill()로 삼각형 뷰를 구현 TipView 구현 삼각형 모양의 뷰이며 UIBezierPath()를 사용하여 구현 backgroundColor를 .clear로 초기화한 후 setFill()이라는 static 메소드 호출 (setFill은 현재의 context에 컬러 색상을 채우는 기능) path로 왼쪽 상단부터, 오른쪽, 아래로 그린 후 close()하고 fill()하면 삼각형 완성 private class TipView: UIView { var bgColor = UICo..

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 구현) 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 도중 화면 끝으로 가면 자동으로..

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 도중 화면 끝으로 가면 자동으로..

snapshotView 메소드 스냅샷? "스냅샷"은 사진이나 이미지를 의미하는 일반적인 용어 "스냅"은 빠르게 찍는 것을 의미하고, "샷"은 캡처나 포착된 것을 의미 snapshotView는 뷰나 화면의 스냅샷은 현재 상태의 이미지를 "찍어"서 어떤 목적에 활용하거나 나중에 사용하기 위해 "포착"하는 것 snapshotView(afterScreenUpdates:)를 호출하면 호출하는 당시의 뷰와 동일한 형태로 복사해놓는것 afterScreenUpdates가 true인 경우 - 애니메이션과 같은 뷰 커밋이 끝난 경우 캡쳐 afterScreenUpdates가 false인 경우 - 해당 시점에 바로 캡쳐 예시 버튼을 누르면 해당 UIButton을 스냅샷하여 위에 배치하는 코드 주의) snapshowView를 ..

RxSwift의 Reactive로 만든 getter, setter myView라는 커스텀 뷰를 사용할 때, myView의 이벤트들을 rx 네임스페이스로 접근 getter부분: .rx.tapButton setter부분: .rx.setTitleButton func bind() { myView.rx.tapButton //