일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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
- combine
- 클린 코드
- Observable
- map
- Refactoring
- rxswift
- Human interface guide
- clean architecture
- swiftUI
- 리펙토링
- ribs
- SWIFT
- Xcode
- Protocol
- RxCocoa
- swift documentation
- tableView
- HIG
- 리펙터링
- Clean Code
- UICollectionView
- MVVM
- uiscrollview
- 리팩토링
- collectionview
- 애니메이션
- uitableview
- 스위프트
- ios
- Today
- Total
목록layoutSubviews (5)
김종권의 iOS 앱 개발 알아가기
UIView에는 updateConstraints(), layoutSubviews(), draw(_:) 메소드가 존재 3가지를 이해하려면 아래 뷰가 그려지는 원리를 이해하는게 필요 import UIKit final class MyView: UIView { override func updateConstraints() { super.updateConstraints() print("updateConstraints()") } override func layoutSubviews() { super.layoutSubviews() print("layoutSubviews()") } override func draw(_ rect: CGRect) { super.draw(rect) print("draw(rect:)") } } ..
Cell 선택 UI 설정 방법 custom cell이 있다면 custom cell의 setSelected(:animated:) 함수에서 사용 tableView가 표출될때 초기에는 모든 cell이 선택되지 않은 상태 하나를 선택하면 나머지 cell이 선택되지 않은 상태가 되고 해당 cell 하나만 선택되게끔 내부적으로 동작 // 선택, 미선택에 따라 cell의 테두리 색깔을 다르게 하는 부분 // UITableViewCell을 상속받은 customCell안에서 override override func setSelected(_ selected: Bool, animated: Bool) { super.setSelected(selected, animated: animated) if selected { conten..
update cycle: 유저로부터 이벤트 핸들링 코드 수행 main run loop: view들을 배치(layout), 가시(display), 제약(constaint) Layout이란? View의 위치와 크기 LayoutSubviews View와 자식 View들의 위치와 크기를 재조정 레이아웃 업데이트 시 직접적인 호출 불가: 재귀적으로 모든 자식 뷰의 layoutSubviews까지 호출해야 하므로 부하가 큰 작업 직접적으로 호출을 지양하므로 간접적으로 호출할 수 있는 방법이 디폴트: view의 layout변화(resizing, subview추가, 스크롤, 회전) LyaoutSubviews를 명시적으로 호출하는 방법 setNeedsLayout(): 바로 올 update cycle에 view의 layou..
기본 개념 layout subviews관련 메서드란? ViewController관련 메서드인 viewWillAppear, viewDidAppear이 존재하듯이 레이아웃이 결정되기 전, 후의 메서드가 존재 UIKit은 이처럼 ViewController의 등장에 따른 연관된 부가적인 작업을 할 수 있도록 메서드가 존재 Layout Subviews역시 레이아웃이 결정되는 과정 중에 레이아웃과 연관된 부가적인 작업들을 수행할 수 있도록 UIKit은 몇 가지 메서드를 존재 ViewController에서 레이아웃이 결정되는 과정 viewWillLayoutSubviews() 메서드 호출 ViewController의 컨텐트 뷰가 layoutSubviews()메서드 호출 layoutSubviews(): 현재 레이아웃 정..
main run loop Main Run Loop : 사용자의 이벤트를 받아들이거나, response 하는 때 Update Cycle: Main Run Loop에서 response를 리턴한 경우 진입 (이 때 레이아웃을 재배치하거나 view를 그림) * iOS앱은 60fps이므로 update cycle의 주기도 1/60초 -> 뷰를 갱신하고 싶어도 이 갱신 주기를 기다려야함 layoutSubviews() 이 메소드는 위에서 레이아웃을 재배치할 때 사용되는 UIView의 메소드 (expensive하기 때문에 다른 메소드를 통해 간접적으로 호출) 1) setNeedsUpdate() : 다음 update cycle에 레이아웃을 갱신 2) layoutIfNeeded(): 즉시 레이아웃을 갱신하라 텍스트필드 클릭..