공부/iOS
-
[UIKit]키보드 위에 수정 제안을 비활성화하기공부/iOS 2023. 12. 13. 19:27
오류 발생 원인 자동으로 맞춤법 교정해주거나 사용자의 입력을 예측해서 입력을 돕는 기능은 유용하지만 때에 따라 필요하지 않는 경우도 존재합니다. 아래의 코드를 textfield에 추가해주면 아래와 같이 제거할 수 있습니다. textfield.autocorrectionType = .no textfield.spellCheckingType = .no 그러면 다음과 같이 UIKit에서 맞춤법 검사를 무시할 수 있습니다. 코드 사용 예시 import UIKit class PlaneTextField: UITextField { init(placeholder: String) { super.init(frame: .zero) self.placeholder = placeholder self.autocapitalization..
-
self에서 unexpected 에러가 발생하는 이유공부/iOS 2023. 12. 1. 02:36
현재 UIKit 기반으로 Codebase로 앱을 개발하고 있습니다. 해당 오류는 프로젝트 진행중에 마주했던 문제입니다. Issue 실행 자체는 잘 되었지만 노란색 에러가 발생하는게 거슬려 찾아보게 되었습니다. 저기서 제안하는 방식대로 Fix를 하게되면 이 버튼을 실행할 때 에러가 발생하게됩니다. Solution 해결법은 간단합니다. let으로 선언한 signupButton을 lazy var로 수정하기만 하면 됩니다. Reason 이전 코드에서 self 의 참조에서 문제가 발생한 이유는 signupButton 변수가 초기화될 때 self가 아직 초기화되지 않았기 때문입니다. 우선 let을 사용한 코드에서, signupButton 변수가 초기화 되는 시점에서 클로저가 호출되고 있습니다. 하지만 아직 self..
-
[Swift] Date formatted, FormatStyle로 날짜 출력하기공부/iOS 2023. 7. 19. 16:50
formatted 소개 formatted는 날짜나 시간에 대해서 간편하게 문자열 형태로 생성하게 도와주는 인스턴스 메소드입니다. iOS15부터 지원하며 기존 swift에서 Date를 다루기 위해 사용해왔던 DateFormatter 보다 훨신 간단하게 날짜를 다룰 수 있습니다. (ios App Dev tutorial로 UIKit 공부를 하다가 발견하여 공부하게 되었습니다.) 5번째 줄을 보면 formatted(date: .omitted, time: .shortened)로 사용된 것을 확인할 수 있는데요. 사용할 수 있는 옵션은 다음과 같습니다. date(ko) date(us) abbreviated 2023년 7월 19일 Jan 17, 2021, complete 2023년 7월 19일 수요일 Sunday, ..
-
디자인 챌린지 (Asia Pacific) - Part 1공부/iOS 2023. 3. 6. 18:16
소개 2023년 3월 6일~7일 동안 진행되는 세션입니다. Apple Developer 자격이 있는 개발자나 디자이너를 대상으로 하며 Apple 에반젤리스트를 만나 디자인 원칙의 핵심을 배웁니다. 저는 3월 6일 오전 10시 세션에 참가했습니다. 내용 길 찾기, 멘탈 모델, 80/20 규칙, 점진적 공개와 같은 디자인 원칙에 대한 소개와 앱에서 어떻게 적용되는지를 배웁니다. 디자인 원칙에 대한 소개와 챌린지 액티비티를 통해 예시 앱을 개선해 봅니다. 강의자료를 캡처하지 않아 챌린지 액티비티와 관련된 내용은 작성이 어렵네요. 길 찾기 길을 찾기 위해 표지판을 보는 상황을 먼저 생각해 봤습니다. 좋은 길 찾기는 다음 질문에 대한 답을 줍니다. "내가 어디에 있지?" "어디로 가야 하지?" "거기로 가면 무엇..
-
Xcode 아이폰 빌드한 뒤에 LLDB 라고 하면서 빌드 안되는 문제공부/iOS 2022. 11. 28. 16:11
🤬킹받는 에러 "LLDB is likely reading from device memory to resolve symbols"? Is there anything I can do to reduce or avoid this wait? 기분 좋게 실기기에서 테스트 하려고 빌드했더니 이상하게 빌드시간이 길더라구요. 시뮬레이터에선 빠르게 되는데 아이폰에선 한참을 기다려도 빌드가 안되어서 찾아봤더니 방법이 있었습니다. 🤩해결책 1. 디바이스를 연결해제 2. Xcode를 완전 종료 3. 둘중 하나의 경로로 들어가서 iOS DeviceSupport 폴더 안의 라이브러리들을 다 삭제한다. open ~/Library/Developer/Xcode// Xcode 14 에서 동작 open ~/Libraries/Developer..
-
Editing NavigationSplitView 예제에서 모르는 키워드 정리(작성중)공부/iOS 2022. 11. 26. 03:45
배경 새롭게 등장한 NavigationSplitView와 NavigationStack을 공부하며 찾아봤던 내용을 정리했습니다. 예제 코드에서 키워드를 뽑아냈으며 헷갈리거나 모르는 개념을 정리해봤습니다. 목차 Group ViewBuilder 앱의 구조 (App, Scene, WindowGroup, ContentView) NavigationSplitView NavigationStack 예제 코드 Group VStack과 비슷한 역할을 하는 Struct입니다. 다음과 같이 VStack 처럼 사용할 수 있으며, 이 경우 VStack과 가장 큰 차이점은 Group은 11개 이상의 child를 가질 수 있다는 점 입니다. Group { Text("SwiftUI") Text("Combine") Text("Swift ..
-
[SwiftUI] Custom Font를 선언형으로 사용해보자공부/iOS 2022. 10. 30. 16:55
서론 먼저 기본폰트의 사용은 다음과 같은데요. Text("안녕하세요") .font(.system(size: 28)) 커스텀 폰트 또한 비슷하게 사용할 수 있습니다. Text("안녕하세요") .font(.custom("Poppins-SemiBold", size: 28)) 이것은 SwiftUI의 Font 공식 문서에서도 잘 나와있으니 참고하실 분은 들어가보시면 좋을 것 같습니다. 이렇게만 끝나면 아쉽죠.. 열거형으로 커스텀 폰트를 추가해보자! 매번 번거롭게 커스텀 폰트의 이름을 타이핑하며 치기 귀찮으니 미리 만들어둡시다 ㅋㅋ 여러 글꼴 유형들을 enum으로 관리하고 해당 커스텀 글꼴에 대한 function을 추가해보죠! 1. Xcode에 폰트 추가하기 Poppins-SemiBold와 Poppins-Mediu..