일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 애니메이션
- 리팩토링
- combine
- swiftUI
- Refactoring
- RxCocoa
- MVVM
- tableView
- Human interface guide
- UITextView
- ribs
- collectionview
- rxswift
- Observable
- 클린 코드
- SWIFT
- 스위프트
- ios
- Clean Code
- HIG
- uitableview
- Xcode
- clean architecture
- swift documentation
- 리펙토링
- 리펙터링
- map
- uiscrollview
- Protocol
- UICollectionView
- Today
- Total
목록iOS 실전 (swift) (51)
김종권의 iOS 앱 개발 알아가기
예제에 사용한 프레임워크 SnapKit - 코드 베이스로 Constraint를 편리하게 구현하기 위해 사용 작은 디바이스 대응 방법1) - 작은 디바이스인지 판별 width크기를 확인하여 해당 기기가 작은 기기인지, 큰 기기인지 확인 SE, Mini 기기는 width의 크기가 375pt 13, 13Pro 기기는 width 크기가 390pt max 기기는 width 크기가 428.0 UIScreen에 extension으로 정의 SE, Mini 기준으로 작은 기기인지 판단하여 정의 extension UIScreen { /// - Mini, SE: 375.0 /// - pro: 390.0 /// - pro max: 428.0 var isWiderThan375pt: Bool { self.bounds.size.w..
1. Section, Item 모델링 - 단일 Section, 다중 Item 모델링 방법 (UITableView, UICollectionView) 2. Section, Item 모델링 - 다중 Section, 다중 Item 모델링 방법 (UITableView, UICollectionView) 예제에 사용한 프레임워크 Then - 초기화하는 동시에 프로퍼티에 접근하여 sugar programming을 위해 사용 SnapKit - UI의 오토레이아웃 구현에 편의를 위해 사용 RxSwift, RxCocoa - 비동기 처리에 편의를 위해 사용 RxDataSources - dataSource는 UITableViewDataSource 델리게이트를 사용하면 되지만 편의를 위해서 RxDataSource 사용 cf) 만..
1. Section, Item 모델링 - 단일 Section, 다중 Item 모델링 방법 (UITableView, UICollectionView) 2. Section, Item 모델링 - 다중 Section, 다중 Item 모델링 방법 (UITableView, UICollectionView) 예제에 사용한 framework Cell안의 UI 인터렉션 처리를 위해 일반적으로 많이 사용하는 비동기 처리 방식 예제를 보이기 위해 아래 프레임워크 사용 RxSwift와 RxCocoa 사용 다중 Item 모델링 아이디어 ViewController에서 UITableView를 가지고 있고 이 tableView의 셀 처리를 쉽게 하고싶은 경우 모델링이 중요 tableView에서 사용할 데이터 소스의 형태는 아래와 같은 ..
UIScrollView 구현 원리 UIScrollView는 swift에서 내부적으로 Frame layout guide와 content layout guide가 존재 content view를 UIScrollView안에 넣고 위 두 layout guide를 설정하면 구현 완료 구현 흐름 1) frame 1-1) super view와 frame layout guide 설정 2) content 2-1) content 뷰 생성 2-2) content 뷰와 content layout guide (space 설정 후 모두 0으로 해주어야 하는 것 주의) 2-3) content 뷰와 frame layout guide의 width를 1:1로 3) 내부 component 추가 3-1) content 뷰 안에 들어갈 내용 ..
status bar 객체 접근 방법 statusBarStyle을 전역변수로 선언 변수로 선언한 후, 이 변수의 값을 수정하면 preferredStatusBarStyle 변수가 불리면서 바뀐 statusBar 속성이 적용 import UIKit class MyVC: UIViewController { var statusBarStyle: UIStatusBarStyle = .default override var preferredStatusBarStyle: UIStatusBarStyle { return statusBarStyle } func didTapBtnStatusBarChange() { statusBarStyle = .lightContent setNeedsStatusBarAppearanceUpdate() }..
UIBezierPath란 Bezier(베지에 곡선 할 때 베지에): 선분을 그릴 때 사용 CAShapeLayer란 CoreAnimation이라 하여 CAShapeLayer 객체를 이용하여 UIBezierPath의 색깔들을 바꿀 수 있고 view.layer에 추가될 수 있는 객체 원리 UIBezierPath객체로 선분을 그려줌 CAShapeLayer의 path에 위에서 만든 UIBezierPath객체.cgPath를 등록 CAShapeLayer로 스타일을 지정해준 뒤, view.layer.addSublayer(CASharpeLayer객체)로 추가 예제) UITextField 밑에 선분 그리기 UIBezierPath의 move(to:) 함수: 그려지는 시작 점 정의 UIBezierPath의 addLine(to..
AttributedString과 String의 차이 String은 단순히 text만 존재 AttributedString은 text에 attribute(속성 - Font, color, style등)이 추가 된 것 코드로 String의 attribute를 지정할 수 있는 장점 Label에 strike속성을 코드로 넣기 String의 extension으로 넣어서 사용 func strikeThrough() -> NSAttributedString { let attributeString: NSMutableAttributedString = NSMutableAttributedString(string: self) attributeString.addAttribute(NSAttributedString.Key.striketh..
UIViewController들을 부모-자식 관계로 이용? A ViewController가 있을 때, A밑에 B ViewController가 존재하게 하는 방법? 자식으로 설정: parent 입장에서 설정 A.addChild(B) A.view.addSubview(B.view) B.didMove(toParent: A) parentVC.addChild(childVC): 특정 ViewController를 현재 ViewController의 자식으로 설정 parentVC.view.addSubview(childView): 추가된 childVC의 View가 보일 수 있도록 맨 앞으로 등장하게 하는 것 childVC.didMove(toParent: parentVC) / willMove : childVC입장에서는 언제 ..