전체 글
-
210106 - TILTIL/2021 2021. 1. 7. 03:50
iOS Map을 구현하는 방법에서 이동 경로를 나타내는 방법을 공부했다. showsBackgroundLocationIndicator allowBackgroundLocationUpdates MKMapView MKMapViewDelegate mapView(_:rendererFor:) 실시간으로 경로를 표시해주는 건 활용도가 낮고 따로 저장해 놓은 뒤에 총 이동경로를 나타내는 게 훨씬 좋다. 프로젝트에는 총 이동경로를 나타내도록 구현할 예정이다. C# swift와의 차이점을 위주로 공부하고 있다. 오늘 공부한 부분은 연산자 조건문 반복문 func swift에 익숙해져 있어서 불편한 점이 많지만 할 만은 하다...
-
210104 - TILTIL/2021 2021. 1. 5. 04:52
iOS 오늘은 지도를 이용하는 방법을 공부했다. 저번에 한번 공부했었던 CLLocationManager를 이용하는 방법인데... 오늘 보니 새롭네???ㅠㅠ 그래서 복습 겸 오늘 공부한 부분은 CLLocation desiredAccuracy activityType startUpdatingLocation() stopUpdatingLocation() CLLocationManagerDelegate locationManager(_:didUpdateLocations:) locationManager(_:didFailWithError:) locationServicesEnabled() CLAuthorizationStatus MapKit distance(from:) 공식문서를 읽어보며 실시간 위치정보를 받아오는 방법을 공..
-
211003 - TILTIL/2021 2021. 1. 4. 05:02
프로젝트 구현은 UI를 위주로 구현해서 딱히 구현에 고민한 부분은 없다. 오늘 공부한 내용은 TextView와 SoftwareKeyboard 그리고 InputView, AccessoryView이다. 유심히 본 부분은 notification을 활용하여 키보드가 나타날 때 textView의 위치를 조정하는 방법과 delegate를 이용하여 텍스트의 입력을 제어하는 방법이었다. 복습은 Collection View를 복습했다. 자꾸 헷갈리는 부분은 customCell을 다룰 때 크기 조정하는 부분과 flowLayout이었다. Storyboard에서 prototype cell의 크기를 바꾸는 건 실제 실행 시에 의미가 없고 collectionView에서 크기를 바꾸거나 delegate를 통해서 크기를 바꿔야 한다..
-
201231- TILTIL/2021 2021. 1. 1. 03:37
iOS Data pass 어제 구현했던 unwind segue를 이용한 B -> A 데이터 이동 방식은 B에서 A의 속성에 바로 접근할 수 있다는 장점이 있었지만 coupling 개념에 있어서 좋지 못했다. 그래서 다시 구현한 방식은 notification을 이용한 방법! B에서 notification을 send하고 A에서 observer를 만들어 캐치하면 됐다! 이때 정보는 userinfo에 담아서 보내면 된다. extension NSNotification.Name { static let DateValueDidChange = NSNotification.Name("DateValueDidChangeNotification") } B에 이렇게 이름을 추가하고 @IBAction func save(_ sender..
-
201230 - TILTIL/2021 2020. 12. 31. 04:34
Swift 다시 복습했던 부분은!! Optional try try? try! defer statement Result Type Error를 처리하는 다른 방식 기존 error 처리방식을 완전히 대체하지는 못한다. Enum으로 되어있다. 처음 봤을 때는 전혀 이해하지 못했는데 한번 사용을 해봤더니 이번에는 이해가 갔다!! Assertion 디버깅할 때 사용한다. 릴리즈 모드에서는 실행되지 않는다. assert(_:_:file:line:)과 assertionFailure(_:file:line:) Precondition assertion과 똑같은데 릴리즈 모드에서도 실행된다. 아주 특정한 상황에서 앱을 강제 종료해야 한다면 사용하기 좋다. -Ounchecked 플래그가 있다면 릴리즈 모드에서도 실행되지 않는다..
-
201228 - TILTIL/2021 2020. 12. 29. 04:00
iOS 오늘은 프로젝트 구현을 하지 않고 GCD, Operation에 대해서 공부했다. Thread? DispatchQueue?? Main queue, background queue Serial queue, concurrent queue sync, aync DispatchGroup DispatchSemaphore Operation Queue Qos 공부한 양이 많아서 자세한 것은 TIL에 적지 않고 나중에 iOS에서 따로 다룰 예정이다! 개념을 이해하는데는 어렵지 않았지만 많은 개념들을 배워서 배운 것들을 기억하는데 시간이 걸릴 거 같다.
-
201226 - TILTIL/2021 2020. 12. 27. 04:17
iOS Label Line break Autoshink Label에 대해서 대부분 아는 것들이었지만 새로 알게 된 것은 이 두 가지였다. Line break는 여러 줄을 나타낼 때 단어가 잘리면서 줄 바꿈 할지 단어를 유지하며 줄바꿈할지 이런 것들을 정하는 속성이었고 autoshrink는 지정해놓은 줄 수를 넘어가면 글자의 크기를 맞게 줄이는 기능이다. 하지만 이건 별로 사용 안 할 거 같다. Timer Timer를 생성할 때는 Timer.scheduledTimer(withTimeInterval:repeats:block:) 메서드를 이용한다. 이 메서드 말고 다른 메서드도 하나 있다. TimeInterval을 저장할 변수를 하나 생성하고 반복적으로 증가시키면 된다. TimeInterval을 보기 좋은 문..
-
201225 - TILTIL/2021 2020. 12. 26. 04:15
iOS 프로젝트를 만들면서 공부한 내용이다. Target Action addTarget(_:actoin:for) 메서드를 이용하여 target과 action을 연결 selector 만드는 방법 다른 스토리보드의 화면을 연결하는 방법 UIStoryboard의 instantiateViewController(withIdentifier:) 메서드 사용 storyboardID Identifier를 지정하지 않고 initialView가 지정되어 있다면 instantiateInitialViewController() 메서드 이용 storyboard에서 storyboardReference를 이용하여 화면 연결하는 방법 Row Action, SwipeAction iOS11.0 이하일 땐 Row Action, 11.0 이상..