내용 다운캐스팅 업캐스팅 타입 체킹 타입캐스팅은 instance 의 유형을 확인하거나 해당 instance를 자체 클래스 계층 구조에서 부모 클래스 또는 자식 클래스로 처리하는 방법이다. 연산자에는 is 와 as 가 있다. 다운캐스팅 다운캐스팅은 부모 클래스의 타입을 자식 클래스의 타입으로 낮춰서 형변환하는 것을 다운캐스팅이라고 말한다.(부모 클래스 인스턴스를 자식 클래스의 타입으로 참조한다.) 다운캐스팅에는 2가지 방법이 있다. as? : 변환이 성공 시 옵셔널 값을 가지며 실패 시 nil 반환 as! : 강제 타입 변환 시도. 성공 시 언래핑된 값을 가지며 실패 시 런타임 에러 발생 🧊 as? as! 예시를 살펴봐보자 다음과 같이 화면 전환할 때 as? 를 사용한다. 우선 instantiateView..
오늘은 정렬 함수인 sorted(by:) 를 공부해보다가 생긴 궁금증을 소개해볼게여 먼저, 간단하게 큰 숫자대로 정렬을 해볼까요? 오.. 그런데 이런 코드도 있던데요..? let reversedNumber = [1,4,5,2,9].sorted(by: >) // reversedNumber 는 [9, 5, 4, 2, 1] Int 형 배열을 가집니다. let reversedNumber = [1,4,5,2,9].sorted(by: { $0 > $1 }) // .....? 잠시만 이게 무슨 일이죠? 그러면 by 라는 argument 의 자료형은 > 와 같은 연사자인가요..? 연산자라는 자료형이.. 있나요..? 아니면 클로저..? 어질어질하네요 😵💫 일단 sorted(by:) 함수에 대해서 알아봅시다. func ..
내용 2가지 방법으로 다크 모드를 대응해보자 Color Assets, UIColor extension 라이트 / 다크 모드를 제한해 보자 먼저 Xcode 와 시뮬레이터에서 라이트 / 다크 모드를 확인할 수 있는 방법을 알아보자. 다음과 같이 Xcode 에서 Appearance 를 조절하면 런타임 중에도 확인 가능하다. 시뮬레이터에서 [설정] → [개발자] → [Appearacne] 에서 토글로 모드를 바꿀 수 있다. 자 이제 대응하는 2가지 방법을 알아보자! 😎 1.Color Assets 으로 대응하기 color assets 를 위한 새로운 파일을 추가하고 싶다면 Asset Catalog 를 추가해서 Color Set 를 추가하거나 기존의 Asset 에서 + 버튼을 눌러서 Color Set 을 추가해도 ..
💃 available 알아보기 available 을 사용하여 특정 Swift 버전 또는 특정 플랫폼 및 OS버전과 관련된 선언의 생명주기를 나타낸다. 사용가능한 속성(attribute)은 항상 두개 이상의 쉼표로 구분된 attribute argument 목록과 함께 나타난다. 이러한 argument는 다음 플랫폼 또는 언어 이름 중 하나로 시작한다. iOS iOSApplicationExtension macOS macOSApplicationExtension watchOS watchOSApplicationExtension tvOS tvOSApplicationExtension swift #available ? #available 은 다음과 같이 사용되고 * 필수이다. Bool 을 반환하는 런타임 검사이다. 그..
transition style 을 골라서 해보다가 .partialCurl 를 해보았다. 그런데 다음과 같이 오류가 발생했다. fullscreen 이 아닌 곳에서 UIModalTransitionStylePartialCurl 을 present 하려한다는 에러 메시지였다. 그렇다면 .partialCurl 는 조건이 필요하다는 소리다. 시도해보니 에러 그대로 정말UIModalPresentationStyle.fullscreen 을 프로퍼티로 가지지 않는 모든 경우에 에러를 일으켰다. 이제는 진짜 .partialCurl 을 사용해보자. 개발자 문서를 들여다 보았다. UIModalTransitionStyle.partialCurl 이 transition style 은 parent 뷰컨트롤러가 full-screen 를 ..
내용 UICollectionView 의 스크롤을 함에 따라서 같이 움직이는 상단 바를 구현해보자 완성 🌊 애니메이션 넣기 // ✅ "뒷면" 라벨의 하단으로 이동시킬 때 UIView.animate(withDuration: 0.3) { // 상단 바의 위치를 ("뒷면" 라벨의 x 좌표) - (상단 바의 x 좌표) 만큼 이동. self.statusMovedView.transform = CGAffineTransform(translationX: self.backTextLabel.frame.origin.x - self.statusMovedView.frame.origin.x + 5, y: 0) } // ✅ 다시 "앞면" 라벨의 하단으로 돌아올 때 UIView.animate(withDuration: 0.3) { // ..
UIScrollViewDelegate 중 스크롤링과 드래깅과 관련된 메서드에 대해서 알아보자.(이 외에도 zoom 관련 메서드도 있음) Responding to Scrolling and Dragging scrollViewDidScroll(_:) Tells the delegate when the user scrolls the content view within the receiver. delegate 는 일반적으로 스크롤뷰에서 content offset 의 변경사항을 가져온다. scrollViewWillBeginDragging(_:) Tells the delegate when the scroll view is about to start scrolling the content. delegate 는 짧은 거리..
내용 텍스트필드 입력 시 테두리 색 변경 텍스트필드 입력 완료 후 키보드 다운 구현 텍스트가 채워지면 특정 버튼 활성화 텍스트필드 선택 후 뷰 터치하면 키보드 다운 구현 텍스트필드 선택 후 뷰 올리기(collectionview 에 inset 부여) 프로젝트를 진행하면서 위와 같이 UITextField 를 구현해야했다. 알아보자! 완성 🖍 테두리 색 변경 / 키보드 업다운 / 채워지면 특정 버튼 활성화 // cardNameTextField.layer.cornerRadius = 10 // 다음과 같이 cornerRadius 를 지정하지 않으면 borderSytle 프로퍼티에 roundedRect 를 주더라도 boderColor 를 주었을 때 각진 모서리를 가진다. extension FrontCardCreat..
- github
- IOS
- async/await
- MVVM
- UserDefaults
- projectsetting
- YPImagePicker
- SwiftUI
- 서버통신
- Algorithm
- configurable widget
- urlsession
- Protocol
- RxCocoa
- OpenSourceLibrary
- rxswift
- CloneCoding
- WidgetKit
- containerBackground
- MOYA
- APNS
- Widget
- Firebase
- 2022 KAKAO TECH INTERNSHIP
- Swift
- watchOS
- Notification
- Objective-C
- WWDC
- WWDC22
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- Total
- Today
- Yesterday