일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- tableView
- MVVM
- ios
- ribs
- RxCocoa
- Protocol
- HIG
- SWIFT
- rxswift
- 클린 코드
- uiscrollview
- swift documentation
- Refactoring
- uitableview
- combine
- UITextView
- UICollectionView
- map
- 스위프트
- Human interface guide
- swiftUI
- Xcode
- Clean Code
- clean architecture
- 리팩토링
- 리펙터링
- 애니메이션
- Observable
- 리펙토링
- collectionview
- Today
- Total
목록autolayout (10)
김종권의 iOS 앱 개발 알아가기
Autolayout 동작 방식 Autolayout은 superview의 크기가 변경되면, constraints로 잡혀있는 값을 기준으로 본인의 크기를 적절하게 변화시키는 것 ex) 사용자가 iPhone을 회전하는 경우, superview인 window의 가로와 세로가 변경되므로 그 subview들은 모두 크기를 변화시킴 constraints로 위치와 크기에 관한 (x, y, width, height) 기준이 정해지면, superview가 변할때 언제든지 동적으로 변동이 가능 Autoresizing Mask 개념 bit mask를 사용 * bit mask: 2진수로 표현한 값이며, 0001은 width값, 0011은 height값 이렇게 값을 표현하는 방법 (enum형태) ex) 아래는 flexibleWi..
예제에 사용한 프레임워크 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. Autolayout 고급 (with SnapKit) - Hugging, Compression, priority 개념 2. Autolayout 고급 (with SnapKit) - remakeConstraints, multipliedBy, dividedBy 3. Autolayout 고급 (with SnapKit) - Constraint 프로퍼티를 사용한 단순한 animation 구현 4. Autolayout 고급 (with SnapKit) - Stretchy 레이아웃 구현 구현 아이디어 UIImageView의 contentMode는 scaleAspectFill 이므로, 이미지의 height가 높아지면 width도 자동으로 높아지는 상태를 이용 UIImageView와 이를 담고있는 containerVie..
1. Autolayout 고급 (with SnapKit) - Hugging, Compression, priority 개념 2. Autolayout 고급 (with SnapKit) - remakeConstraints, multipliedBy, dividedBy 3. Autolayout 고급 (with SnapKit) - Constraint 프로퍼티를 사용한 단순한 animation 구현 4. Autolayout 고급 (with SnapKit) - Stretchy 레이아웃 구현 * 미리 알아야 하는 개념) 코드로 UI 구현 시, SnapKit 기본 사용 방법 버튼 길이 감소 애니메이션 SnapKit의 Constraint 타입의 프로퍼티를 저장해놓고, 버튼 탭 시 constraint.update하여 레이아웃 ..
1. Autolayout 고급 (with SnapKit) - Hugging, Compression, priority 개념 2. Autolayout 고급 (with SnapKit) - remakeConstraints, multipliedBy, dividedBy 3. Autolayout 고급 (with SnapKit) - Constraint 프로퍼티를 사용한 단순한 animation 구현 4. Autolayout 고급 (with SnapKit) - Stretchy 레이아웃 구현 미리 알아야하는 개념 코드로 UI 구현 시, SnapKit 기본 사용 방법 snapKit의 remakeConstraints() 기존에 입력되었던 constraints를 삭제하고 다시 constraints를 설정하는 메소드 multip..
1. Autolayout 고급 (with SnapKit) - Hugging, Compression, priority 개념 2. Autolayout 고급 (with SnapKit) - remakeConstraints, multipliedBy, dividedBy 3. Autolayout 고급 (with SnapKit) - Constraint 프로퍼티를 사용한 단순한 animation 구현 4. Autolayout 고급 (with SnapKit) - Stretchy 레이아웃 구현 미리 알아야하는 내용 intrinsicContentSize 개념: https://ios-development.tistory.com/647 (코드로 UI 구현 시) SnapKit 프레임워크 사용: https://ios-developme..
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..
가장 중요한 차이 : frame은 자기자신의 view를 이동, bouds는 subview들을 반대방향으로 이동 1. frame The frame rectangle, which describes the view’s location and size in its superview’s coordinate system. 즉, super view를 기준으로 해당 뷰의 크기나 위치를 표현하는 것 - size는 view를 감싸는 크기를 정의(회전시, view의 크기는 동일할 것이지만 size는 커짐) ex) let vc = UIViewController() vc.view.backgroundColor = .darkGray let view1 = UIView() view1.backgroundColor = .green vie..