일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- clean architecture
- 스위프트
- uitableview
- swift documentation
- rxswift
- 애니메이션
- ribs
- HIG
- MVVM
- swiftUI
- ios
- Protocol
- 리팩토링
- uiscrollview
- 클린 코드
- Human interface guide
- UICollectionView
- 리펙터링
- 리펙토링
- collectionview
- UITextView
- Clean Code
- combine
- tableView
- Observable
- SWIFT
- Xcode
- RxCocoa
- map
- Refactoring
- Today
- Total
목록scrollview (10)
김종권의 iOS 앱 개발 알아가기
1. FlexLayout과 PinLayout 사용 방법 - UIStackView 개선, 속도 향상, 기능 추가, 선언형 2. FlexLayout과 PinLayout 사용 방법 - 여백(margin, padding), 정렬(alignItems, justifyContent) 3. FlexLayout과 PinLayout 사용 방법 - 특정 뷰(Cell, scrollView), 기타(grow, shrink) scrollView에 적용 방법 1. 뷰 준비 - container, scrollView, contentView scrollView안에 들어갈 뷰는 내부적으로 contentSize 크기에 따라 스크롤이 결정되는 UIScrollView + UIStackView처럼 구현 (이 구현 방법은 이전 포스팅 글 참고)..
1. FlexLayout과 PinLayout 사용 방법 - UIStackView 개선, 속도 향상, 기능 추가, 선언형 2. FlexLayout과 PinLayout 사용 방법 - 여백(margin, padding), 정렬(alignItems, justifyContent) 3. FlexLayout과 PinLayout 사용 방법 - 특정 뷰(Cell, scrollView), 기타(grow, shrink) 예제로 잘성될 코드 준비 import UIKit import FlexLayout import PinLayout class ViewController: UIViewController { private let container = UIView() private let label1: UILabel = { let ..
목차) SwiftUI의 기본 - 목차 링크 ForEach collection형태의 데이터들에 접근하는 구조체 collection 형태인 데이터는 반드시 identifiable을 준수하는 구조체 ForEach는 collection을 순회할때 RandomAccess 방식을 사용하므로 효율적인 탐색이 가능 사용 방법 모델에 Identifiable을 준수하도록 구현 배열 collection으로 데이터 준비 private struct NamedFont: Identifiable { let name: String let font: Font var id: String { name } } private let namedFonts: [NamedFont] = [ NamedFont(name: "Large Title", fon..
목차) SwiftUI의 기본 - 목차 링크 List 형태 Hashable을 따르고, View를 준수하는 두 개의 제네릭스로 구성 struct List where SelectionValue : Hashable, Content : View 사용방법은 List 후 클로저안에 subviews들을 넣어서 구현 struct ContentView: View { var body: some View { List { Text("A List Item") Text("A Second List Item") Text("A Third List Item") } } } List(:) { } 형태로도 사용이 가능 struct Ocean: Identifiable { let name: String let id = UUID() } privat..
* 전체 소스 코드는 튜토리얼에 있는 프로젝트 참고 TabView TabView와 .tabItem 속성을 이용하여 구현 먼저 Tab의 케이스를 정의하고, 이 케이스를 상태로 갖고있는 프로퍼티도 선언 import SwiftUI struct ExampleView: View { @State private var selection = Tab.home enum Tab { case home case setting } } body를 선언하여 내부에서 TabView(selection:)으로 selection 상태를 정의하고 클로저 내부에서 TabView안에 들어갈 뷰들을 구현 var body: some View { TabView(selection: $selection) { // 여기서 뷰 구현 } } 첫 번째 뷰 - ..
구현 아이디어 상단에는 CollectionView를 통해 수평 스크롤뷰 생성 아래에는 PageViewController를 통해 다수의 ViewController 존재 두 인터렉션을 연결하여 하나의 ViewPager를 사용하는 경험을 주는 UI 사용되는 Component 참고 * PageViewController 참고: https://ios-development.tistory.com/623 [iOS - swift] PageViewController (페이지 뷰 컨트롤러) PageViewController 구현 원리 ViewController가 들어있는 배열을 준비 첫번째 ViewController를 PageViewController에 set 초기화 나머지 ViewController 전환은 DataSourc..
cf) collectionView를 이용한 수평 스크롤 뷰: https://ios-development.tistory.com/632 [iOS - swift] CollectionView(컬렉션 뷰) - 수평 스크롤 뷰 (UICollectionViewFlowLayout) 1. custom layout이 아닌 UICollectionViewFlowLayout 사용한 방법 2. UICollectionViewFlowLayout을 이용한 CarouselView (수평 스크롤 뷰) 3. custom layout을 이용한 UICollectionView CollectionView에 사용.. ios-development.tistory.com 구성 ScrollView 안에 StackView 추가 StackView안에 Butt..
원리 ScrollView의 frame은 UIScreen.main.bounds와 같게한 후 contentSize를 pageControl의 갯수만큼 * UIScreen.main.bounds.width 배치: scrollView를 먼저 추가 -> scrollView의 크기를 잠시 축소 -> PageControl추가 -> srollView 크기 증가 현재 화면에서 scroll이 50%이상 되면 스크롤 진행: ScrollView의 delegate를 이용하여 계산후 pageControl의 currentPage갱신 Storyboard에서 ScrollView와 PageControl배치 ScrollView 추가 축소 및 pageControl추가 ScrollView 다시 크기 증가 (frame, content size는 ..