일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- Refactoring
- clean architecture
- UICollectionView
- Protocol
- MVVM
- swift documentation
- HIG
- tableView
- Human interface guide
- combine
- 리팩토링
- swiftUI
- UITextView
- collectionview
- 애니메이션
- 클린 코드
- RxCocoa
- ios
- uiscrollview
- Observable
- ribs
- rxswift
- 리펙토링
- 스위프트
- Xcode
- Clean Code
- 리펙터링
- SWIFT
- map
- uitableview
- Today
- Total
목록uiscrollview (21)
김종권의 iOS 앱 개발 알아가기
scrollViewDidEndDragging(_:willDecelerate:) 개념 scrollView의 델리게이트 메소드 스크롤하는 드래그가 종료되었을때 호출 스크롤이 종료되었을때 호출 decelerate값이 true이면 사용자가 스크롤을 놓을때 관성으로 놓아진것 (드래그를 떼고나서 서서히 멈추는 스크롤 됨) decelerate값이 false이면 사용자가 스크롤을 놓을때 관성없이 놓은것 (드래그를 떼고나서 바로 멈춤) extension ViewController: UITableViewDelegate { func scrollViewDidEndDragging(_ scrollView: UIScrollView, willDecelerate decelerate: Bool) { print("decelerate>"..
UITextView 입력 중 위로 스크롤 되는 현상 UIStackView를 사용하여 리스트 형태의 뷰를 보여줄 때 중간에 UITextView가 있다면 버그가 발생 뷰형태: UIScrollView안에 UIStackView을 넣고, 이 스택뷰에 UITextView 넣어서 리스트 형태의 뷰를 만든 형태 (UITextView의 isScrollEnabled는 false로 설정) ex) 뷰 형태 import UIKit class ViewController: UIViewController { private let scrollView = UIScrollView() private let stackView = UIScrollView() private let textView = UITextView() private let ..
* 업데이트 된 최신글: https://ios-development.tistory.com/1565 UITextView 입력 중 위로 스크롤 되는 현상 UIStackView를 사용하여 리스트 형태의 뷰를 보여줄 때 중간에 UITextView가 있다면 버그가 발생 뷰형태: UIScrollView안에 UIStackView을 넣고, 이 스택뷰에 UITextView 넣어서 리스트 형태의 뷰를 만든 형태 ex) 뷰 형태 import UIKit class ViewController: UIViewController { private let scrollView = { let v = UIScrollView() v.translatesAutoresizingMaskIntoConstraints = false return v }(..
setContentOffset 개념 UIScrollView의 메서드이며, CGPoint 좌표를 통해 원하는 곳으로 스크롤 하게끔하는 기능 애플에서는 이 메서드에 completion handler를 따로 작성하지 않아 직접 구현이 필요 completion 구현하는 방법에는 UIView.animate와 CATransaction 등등의 방법이 널리 알려져 있지만 이 방법으로는 completion 동작 x setContentOffset에 completion 구현 방법 "contentOffsetAnimationDuration"를 사용하여 UIScrollView의 인스턴스에 setValue로 입력하면 스크롤 속도를 지정할 수 있는 아이디어를 사용 scrollView.setValue(0.5, forKeyPath: "..
contentInsetAdjustmentBehavior 속성 safeArea를 고려하여 자동으로 레이아웃을 지정해주도록 하는 옵션 구체적으로는 scrollView의 content 영역의 inset을 safe area 고려하여 레이아웃될지 결정해주는 옵션 ContentInsetAdjustmentBehavior의 4가지 옵션 automatic(default): 자동으로 safe area에 맞게 레이아웃 조정 scrollableAxes: 스크롤 가능한 방향만 safe area 고려 never: safe area 상관 없이 적용 always: content는 무조건 safe area 고려 @available(iOS 11.0, *) public enum ContentInsetAdjustmentBehavior : ..
스크롤 구분 방법 스크롤을 정교하게 컨트롤하다보면 사용자가 드래그하여 스크롤이 시작되었는지, setContentOffset(_:animated:)로 스크롤을 지정했는지 구분이 필요 ex) UIScrollView에서 스크롤 될 때마다 특정 처리를 하고싶은 경우 사용하는 didScroll 델리게이트에서 setContentOffset과 직접 드래그 했을때 구분하고 싶은 경우? extension ViewController: UITableViewDelegate { func scrollViewDidScroll(_ scrollView: UIScrollView) { print(scrollView.contentOffset) label.text = "\(scrollView.contentOffset)" } } 사용자가 드래..
1. 스크롤되는 PagerView 구현 방법 - 상단 TabView 구현하기 2. 스크롤되는 PagerView 구현 방법 - 하단 PagerView 구현하기 3. 스크롤되는 PagerView 구현 방법 - Tab과 Pager 스크롤 싱크 맞추기 v PagerView 형태 상단에는 TabView UIScrollView안에 UIStackView를 넣어서 구현하고 각 tap 이벤트는 뷰의 tag를 사용하면 인덱스를 구할 수 있음 하단에는 PagerView 페이지 기능을 쉽게 사용하기 위해서 UICollectionView를 사용하여 구현 주의) UIPageViewController를 사용하지 않음 - UIPageViewController안에 내장된 UIScrollView의 형태는 내부 content 크기만큼 있..
스크롤 방향 구하기 아이디어 scroll 방향의 기준은 indicator 의 방향과 동일하게 기준을 설정 (indicator가 내려가면 스크롤 방향이 down이라고 정의) pan gesture를 확인하면 스크롤을 어느 방향으로 하고 있는지 판단이 매우 쉬우므로, pan gesture 값을 사용 여러곳에서 사용되기 때문에 UIScrollView의 extension으로 정의 스크롤 방향 구하기 스크롤은 Rx와 같이 사용하면 편리하게 사용이 가능하므로 RxSwift, RxGesture 사용 target 'ExScrolling' do use_frameworks! pod 'RxSwift' pod 'RxGesture' end 스크롤 확인을 위한 UI 준비 tableView 한개와 label이 있어서, 방향에 따라 ..