iOS 개발(6)
-
[TIL] 포도맛(스레드) 에러
프로젝트를 하던 중에 안나오던 포도맛 에러가 나왔다.. UI 업데이트 관련된 코드는 메인스레드에서 돌아가게 보장해줘라!! 라는 에러다 기능이 구현되는덴 지장이 없었지만 노란색이든 보라색이든 경고성 에러도 없어야 마음이 편하다,, 물론 없애는게 맞고..! 아무튼 나는 저 recordOrder 프로퍼티에 보라색 줄이 떠서 recordOrder가 문제가 있는줄 알고 쓰인 곳을 다 찾아봤다 근데 전혀 문제가 되는 곳이 없었다,, 뭐지?!?!?! 도저히 못찾겠어서 빌드해서 언제 저 에러가 뜨는지 확인해봤다 근데 이게 머선일,, 문제는 CompletionView가 나타날때 저 에러가 뜨는 것이었다.. isShowingCompletionView가 CompletionView을 호출하는 프로퍼티다 isShowingCom..
2024.03.16 -
[ActionSheet] title 안나오게 할 수 있을까?
SwiftUI로 카카오톡 채팅을 구현하던중 채팅방을 나갈때 뜨는 sheet가 무엇인지 찾아보았다. 구글링을 해보니 ActionSheet라는 것을 쓴다고 한다. 구현 코드는 이렇다 ! struct ContentView: View { @State private var kakaoActionSheet = false var body: some View { VStack { Button { kakaoActionSheet = true } label: { Image(systemName: "door.left.hand.open") } .actionSheet(isPresented: $kakaoActionSheet) { ActionSheet(title: Text("채팅방을 나가면 대화내용이 모두 삭제되고\n채팅목록에서도 사라집..
2023.07.31 -
[Codable] color값 사용하기(연산프로퍼티)
SwiftUI에서 데이터를 JSON형식으로 변환하려면 Codable프로토콜을 채택해야 한다. import Foundation import SwiftUI struct Sticker: Codable, Identifiable { var id: UUID = UUID() var memo: String var color: Color // set에 newValue(받아온 color값) var color: Color { get { switch colorIndex { case 0: return .cyan case 1: return .purple case 2: return .blue case 3: return .yellow case 4: return .brown default: return .white } } set { ..
2023.07.12 -
[Clone App] Login - SwiftUI (#1)
스터디에서 SwiftUI로 로그인 화면을 만들어 보기로 했다! 데이터가 저장되고 실제 로그인되는건 아니지만 로그인화면의 다양한 기능을 구현해야 한다. 우선 화면 구성은 위 사진과 같다. 먼저 1주차에선 화면 구성, 이메일 정규식, 비밀번호 텍스트 필드, 로그인 동의를 구현하기로 했다. 화면구성 1. Log in (navigationTitle) : NavigationStack 이나 NavigationView를 써서 안쪽 view에 .navigationTitle("Log in")을 주면된다. struct ContentView: View { var body: some View { NavigationView { VStack { }.navigationTitle("Log in") } } } 2. Descriptio..
2023.07.06 -
[SwiftUI] VStack
SwiftUI에서 VStack은 세로로 정렬된 뷰의 컨테이너입니다. VStack은 Vertical Stack의 약자로, 포함된 뷰들을 위에서 아래로 쌓아 올리는 방식으로 레이아웃을 구성합니다. SwiftUI 공식문서에 따르면 VStack은 alignment , spacing , content 의 매개변수를 받을 수 있습니다. 1. alignment 기본적으로 VStack은 뷰들을 중앙 정렬합니다. 하지만 alignment 매개변수를 사용하여 다른 정렬 방식으로 변경할 수 있습니다. 예를 들어, .leading, .trailing 등의 alignment 값을 지정할 수 있습니다. .center: 뷰를 수직 방향으로 중앙 정렬합니다. 이는 VStack의 기본 정렬 옵션입니다. .leading: 뷰를 수직 방..
2023.06.19 -
[UIKit] ViewController의 LifeCycle
ViewController란 ? Swift와 iOS 개발에서 UIKit 프레임워크에 속하는 클래스로 화면의 상태와 동작을 관리 iOS 앱에서 각 화면은 일반적으로 하나의 ViewController와 연결됩니다. ViewController는 UIKit의 UIViewController 클래스를 상속받아 작성되며, 앱의 화면에 해당하는 모든 구성 요소를 처리하고 제어합니다. ViewController는 다음과 같은 역할을 수행합니다. 뷰의 로드 및 초기화 사용자 입력 처리 데이터 관리 및 로직 처리 애니메이션 및 화면 전환 관리 다른 ViewController와의 통신 및 데이터 전달 ViewController는 뷰의 LifeCycle 이벤트를 처리하고, 해당 뷰가 화면에 나타나거나 사라질 때 필요한 작업을 ..
2023.05.28