iOS 10

연관된 PickerView 두 개를 사용하고 싶다면? - iOS

// viewDidLoad에서 delegate, dataSource 준수 override func viewDidLoad() { super.viewDidLoad() regionPickerView.delegate = self regionPickerView.dataSource = self } // 하나의 PickerView 안에 보여줄 Picker 갯수 지정 func numberOfComponents(in pickerView: UIPickerView) -> Int { return 2 } // 각 picker 마다 몇 개의 데이터를 보여줄 것인지 지정 func pickerView(_ pickerView: UIPickerView, numberOfRowsInComponent component: Int) -> Int..

iOS 2023.02.28

[iOS] present를 push처럼, dismiss를 pop 처럼

화면전환 시 애니메이션 방향은 다음과 같아요! present : 아래 -> 위 dismiss : 위 -> 아래 push : 우 -> 좌 pop : 좌 -> 우 present 형식으로 화면을 보여주지만 push 와 같은 방향으로 애니메이션을 보여주고 싶을 때가 있습니다. 그럴 때 CATransition() 을 통해 커스텀 해줄 수 있습니다. 적용한 CATransition의 속성은 다음과 같습니다. duration : 애니메이션 속도 type : 띄워줄 방식 (push, reveal, fade, moveIn) subType : 띄우줄 방향 현재 나의 뷰의 윈도우에 지정한 속성을 가진 transition 객체를 추가한 후 present/dismiss 해주면 마치 push/pop 해준 것 같은 애니메이션과 함께..

iOS 2022.07.11

iOS 에서의 MVC, MVP, MVVM 변천사 간단 정리 - iOS

애플의 MVC View : 일관성 있는 앱의 느낌을 유저에게 전달하기 위해선 높은 재사용성이 필요하다 Model : 도메인 관련 데이터를 캡슐화하기 때문에, 같은 형태의 데이터를 다른 곳에서 또 쓰는 경우가 많으므로 또한 높은 재사용성이 필요하다 → View, Model을 서로 떨어뜨려 의존성을 없애고 높은 재사용 성을 취함. 애플이 원하던 대로 View와 Model은 서로 모르게 되었으나, 대규모 협업에서 Controller의 역할이 비대해졌다. 레이아웃 코드 유저 입력 프로세싱 비즈니스 로직 데이터 변환 화면 전환 생명주기 콜벡처리 네트워크 통신 → 이렇게 Massive View Controller 를 해결하기 위해 Controller의 역할을 덜은 MVP 가 나타나게 되었다. MVP : 마틴 파울러..

iOS 2022.05.05

ARC & Retain Cycle 예제로 살펴보기 - iOS

편의상 RC(Reference Count, 참조카운트) 라고 작성하였습니다. 예제를 진행하기 전에 혹은 아래의 글을 읽다가 '클래스, 인스턴스, 객체'가 무엇인지 잘 모르겠다면 여기를 ! 'strong, weak, unowned' 키워드가 무엇인지 잘 모르겠다면 여기를 ! 'ARC와 RetainCycle'이 무엇인지 잘 모르겠다면 여기를 ! swift파일을 하나 생성하여 모델을 생성 아래와 같이 생성하였습니다! 두 모델 Person, Mac은 서로의 타입의 프로퍼티를 가지고 있습니다. (사람은 맥북을 소유하고있고, 맥북은 주인이 존재한다! 의 느낌입니다.) 그리고 다시 ViewController로 넘어와서 다음과 같이 각각 Person, Mac 타입의 변수를 선언해주고 시작을 해봅시다! [ 서로를 참조하..

iOS 2022.04.17

Push Notification 과 APNS - iOS

Notification에 대해 공부하고 정리하려니 끝도 없어서 오늘은 Push Notification의 개괄적인 내용에 대해 우선작성하고 추후에 PushNofigication을 보내보는 실습 프로젝트에 대해 업로드 하면서 자세히 작성하고자 합니다! . . . . Push Notification 이란? iOS입장에서 알림을 받는 상황은 두 가지가 있습니다. 1. forground 상태일 때(사용자가 앱을 사용중일 때, 화면에 보여질때) 2. backgorund 상태일 때(사용자가 앱을 사용하지않고 있을 때, 화면에 보여지지 않을 때) foreground 상태일 때는 앱에서 특정 시점에 알림을 보내면 되지만, "만약 background 상태이면..? 앱이 실행중이지 않은 상태라면..?" 어떻게 처리해주어야..

iOS 2022.04.14

[ScrollView] Auto Layout 설정이 어렵다면 이걸 보세요! - iOS

잘 지내셨나요..? (대충 왜 요즘에 포스팅 안했냐는 분들의 눈빛을 받는 나) (뭔가 기대에 부응을 해야할 것 같은 나) . . . . . . 그래서 주제를 하나 물고왔습니다~~~! (하하..) 오늘은 프로젝트를 진행하면서 scrollView를 사용하게 되었는데, scrollView를 처음 접할 때는 제약 조건 설정하는게 어렵더라구요. 저와 같은 분이 많을 거라 생각이 들어서 포스팅하게 되었습니다. 이제 본격적으로 시작해보겠습니다~! 스크롤뷰가 뭐에요..? 라고 물으신다면 대답해드리는게 인지상정. 오늘도 역시나 애플 공식 문서에 먼저 검색해봅시다. UIScrollView는 자신이 담고있는 뷰들의 scrolling과 zooming을 허용하는 뷰를 말합니다. ScrollView는 손가락들의 움직임을 추적하고..

iOS 2021.11.18

github에 올리면 안되는 APIKEY 숨기기 - iOS

화면과 같이 간단한 프로젝트를 바탕으로 설명하겠습니다. 프로젝트는 여기 링크로 가시면 상세 코드 및 화면 구성을 확인하실 수 있습니다! 화면은 아래와 같이 간단하게 구성하였습니다. 우선 api 호출이 성공하신 후에 api관련 설정을 해주세요! (위의 프로젝트 같은 경우 Alamofire, swiftyJSON을 사용하여 json 형식의 api 데이터를 가져와 사용하고 있습니다.) 저는 우선 API 관련 설정은 끝났고, 그 결과가 label에 잘 뜨는지 확인한 결과 다음과 같이 잘 출력되는 것을 볼 수 있습니다! (이 포스트를 작성 후 참고하실 수 있게 같은 프로젝트로 api 호출 하는 과정을 간단하게 포스팅할까 생각중입니다.) api 호출이 어려우신 분은 그것 부터 연습해보시는게...어떠할지..! 본격적으..

iOS 2021.10.26

랜덤 색상을 쓰고 싶을 때 추가하면 되는 extension - iOS

// random(in:) 안에 있는 variation은 원하는 범위로 수정하시면 됩니다. extension UIColor { class var ramdomColor: UIColor { return UIColor( red: CGFloat.random(in: 0.7...1), green: CGFloat.random(in: 0.7...1), blue: CGFloat.random(in: 0.7...1), alpha: 1 ) } } // 사용 방법 view.backgroundColor = .randomColor 틀린부분이 있거나, 더 좋은 방법이 있다면 댓글로 남겨주세요! 🌈댓글은 언제나 환영입니다🙏🏻

iOS 2021.10.23

View Life-Cycle - swfit

: View Controller의 생명주기에 대해 알아보고자 한다. iOS앱은 ViewController들로 이루어져 있다. (줄여서 VC 라고 적도록 하겠다.) 각각의 VC는 생명주기를 가지고 있다. UIViewController 란? : An object that manages a view hierarchy for your UIKit app. * For Detail : https://developer.apple.com/documentation/uikit/uiviewcontroller VC’s Responsibility 주어진 데이터의 변화에 대한 응답으로 view들의 contents 업데이트 하기. View들과 함께 사용자의 상호작용에 응답한다. (Event Handling) View들을 재조정하고,..

iOS 2021.07.17

Frame / Bounds 의 차이 - Swift

공통점 UIView의 instance property. origin, size를 가진다. (x, y, width, height) Origin (원점) Frame : superView의 원점으로부터 x,y축으로 얼마나 떨어져 있는지를 나타낸다. Bounds : 자기 자신의 좌표계 안에서 원점을 결정하므로 별도의 값을 하당하기 전까지는 항상 0으로 초기화 된다. Size Frame : superView 좌표계 안에서 현재 view가 사각형 영역으로 차지하고 있는 크기를 나타내기 때문에, view를 회전시킨다면 frame의 크기는 달라질 수 있다. Bounds : 자기 자신의 크기를 나타내므로 view가 회전하더라도 크기는 항상 같다. Frame : The frame rectangle, which descri..

iOS 2021.07.17
반응형
1