일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- github
- 개발자
- UIButton
- 한글
- IOS
- Python
- Apple
- iOS16
- rxswift
- 웹뷰
- error
- Swift
- Archive
- stack
- Realm
- String
- appstore
- SwiftUI
- Notification
- Session
- Code
- Firebase
- JPA
- mac
- darkmode
- MacOS
- Git
- Xcode
- FLUTTER
- view
- Today
- Total
목록Swift (173)
EEYatHo 앱 깎는 이야기
Layout, Constraint, AutoLayout의 변천사 Swift에서 뷰를 그리는 Layout 방법은 아래 그림과 같이 발전해왔다. View를 Layout하는 방법. Frame-Based Layout -> AutoResizingMask -> AutoLayout AutoLayout의 방법. NSLayout -> VisualFormat -> Anchor -> SnapKit View를 Layout하는 방법의 발전 1. Frame-Based Layout - 뷰의 좌상단 점의 위치와, 넓이, 높이를 지정하여 뷰의 위치를 고정시킴 - 런타임에 뷰들의 구조가 변경되면 영향을 받는 모든 뷰의 프레임을 다시 계산 - 가로모드 화면, 다양한 크기용 뷰 구조가 따로 필요. 이런 방식은, iPhone 5와 iPad가..
[ 요약 ] 컨트롤러를 찾아서 그 뷰에 띄우지 말고, Window 위에 띄워라. [ 개요 ] Popup 관리 모듈을 만들때의 일. (PopupManager) 팝업을 띄워주기위해 현재 화면에 보이는 뷰컨트롤러를 찾아야한다고 생각했다. 그래서 구글링해서 찾은 소스. (visibleViewController, selectedViewController, presentedViewController를 활용해 DFS로 찾아준다.) class func topViewController(base: UIViewController? = UIApplication.shared.keyWindow?.rootViewController) -> UIViewController? { // return base if let nav = bas..
여태껏 단순히 한방향으로 움직이고, 움직이는 속도를 조절하는 애니메이션만 알고있었다. 그런데 목표지점에 도착한 뒤, 살짝 튕기고 제자리로 돌아오는 일명 스프링 효과가 있었단걸 알았다. usingSpringWithDamping 0.0 ~ 1.0 0.0에 가까울수록 심하게 튕기고, 1.0이면 튕기지 않는다 initialSpringVelocity 0.0 ~ 1.0 0.0에 가까울수록 튕길 때 속도가 빠르다 예시 ) UIView.animate(withDuration: 0.1, delay: 0, animations: { // 일단 밑에 레이아웃하기 위한 버퍼 애니메이션 container.alpha = 1 }, completion: { _ in UIView.animate(withDuration: 0.5, delay..
디자인팀의 요구사항은, 올라왔다가 내려가는 Toast. Frame으로 Animate하는거야 뭐 아주 쉽다. 그런데 Label의 줄 수에 따라 동적으로 높이가 변하는 Toast. 때문에 FrameBasedLayout이 아닌, AutoLayout을 사용한다. AutoLayout Animate로 리서칭을 하였는데, animate 밖에서 Constraint 수정하고, animate 안에서 layoutIfNeeded() 하기? 잘 안되면 setNeedsUpdateConstraints() 하기? 다 필요없다 animate 함수 안에 아래처럼만 해주면 된다. 갓갓 SnapKit.. ( 진작에 SnapKit Animate로 검색할걸 ㅇㄴㅁㄹㄴㅁㅇㅁㄹㅁㄴ ) UIView.animate(withDuration: 1.0, ..
1. 하드웨어 HW Apple은 하드웨어로 매킨토시(macOS가 들어가는 컴퓨터), 아이폰(iOS가 들어가는 스마트폰, 패드)을 만들었고, 2. 운영체제 OS 이 하드웨어에서 사용할 운영체제인 macOS(과거엔 OS X였지만 Siera부터 명명이 바뀌었음)와 iOS를 만들었다. 3. 프로그래밍 언어 PL 이 OS들은 처음에 Objective-C를 표준언어로 채택하였다. (처음 설계부터 옵씨로 작동하게 하려고 만들었음 -> 옵씨의 실행속도가 가장 빠름) 하지만 사람들이 옵씨를 너무 어려워하고 비직관적이라고 비판하자, 옵씨를 래핑한 Swift라는 프로그래밍 랭귀지(PL)를 만들었다. 4. 통합 개발 환경 IDE 애플은 HW -> OS -> PL 에 이어서, 갖가지 도구와 최적화를 제공하는 IDE를 만들었으니..