SwiftUI - iCloud 사용하기
·
SwiftUI
데이터를 디바이스에 저장하지 않고 iCloud 에 저장하여 효율적으로 디스크를 관리할 수 있습니다  iCloud를 사용하면 단일 값들이나 문서들을 저장할 수 있습니다.특징Key-Value storage system: iCloud의 User Default 시스템입니다. User Default 와 같이 Key-Value 로 데이터를 설정하고 가져오지만 디바이스가 아닌 iCloud 에 데이터를 저장한다는 가장 큰 차이점이 있습니다.  앱의 preferences 나 상태 또는 유저의 각각의 기기들의 설정 등을 저장할 수 있으며 이제부터 iCloud 사용하는 방법을 다루겠습니다. iCloud 추가하기iCloud에 데이터를 저장하기 위해서 우선 Signing & Capabilities - Targets - +Cap..
SwiftUI - Sheet 내부에서 꾹 눌렀을 때만 동작, long press
·
SwiftUI/에러해결
Sheet에서 2~3초 이상 컴포넌트를 눌렀을 때 동작하는 경우가 있습니다  해당 문제는 NavigationLink 또는 DatePicker 등 여러 곳에서 발생할 수 있습니다. 이번에 다룰 내용은 sheet 내부에서 DatePicker 를 눌렀음에도 불구하고 2~3초 이상 누르지 않는다면 DatePicker를 focus할 수 없는 문제를 해결한 내용입니다. 해결 전 코드아래는 발생하게 됐던 코드입니다. 간결하게 body를 구현하였으며 별다른 문제는 없어보였습니다.VStack { headerSection Divider() contentSection Spacer()}@ViewBuilder private var contentSection: some View { VStack(spac..
SwiftUI - Global functions are not supported in this predicate (SwiftData 에러)
·
SwiftUI/에러해결
이 에러는 SwiftData 에서 filter 를 사용하였을 때 발생할 수 있는 에러입니다  filter 를 사용하여 특정 데이터를 가져오기 위해서는 Predicate 를 만들어 가져와야 합니다. 문제발생하지만 Predicate 에서는 복잡한 데이터를 사용할 수 없습니다. (예를 들어 동적인 데이터 Date() 처럼)static func predicate() -> Predicate { return #Predicate { $0.date == Date().description }} 문제해결이 문제를 해결하기 위해서는 원하는 조건 데이터를 predicate 함수 내부에 let 으로 만들어 다음과 같이 해결합니다.static func predicate() -> Predicate { let now = Da..
Swift - 대소문자 바꾸기 (아스키코드, map) 2가지 방법
·
SwiftUI
func solution(_ my_string:String) -> String { return my_string.map { $0.isUppercase ? $0.lowercased() : $0.uppercased() }.joined()}func solution(_ my_string:String) -> String { var arr: String = "" for i in my_string { if i.asciiValue! > 96 { arr.append(Character(UnicodeScalar(i.asciiValue! - 32))) } else { arr.append(Character(UnicodeScalar(i.asciiVa..
SwiftUI - Observable 여러 뷰에서 데이터 업데이트 안됨
·
SwiftUI/에러해결
Observable를 사용하면 여러 뷰에서 데이터를 서로 교환할 수 있습니다 데이터를 교환하기 위해서 Observable 메크로를 사용할 수 있습니다. 하지만 메크로를 사용하면서 여러 뷰에서 데이터의 값을 바꿀 때 어떤 뷰에서는 값이 바뀌지만 원하는 동작을 수행하지 않는 상황이 있을 수 있으며 예시와 함께 설명하겠습니다.  아래 코드를 사용하여 topTabBarExist 의 값의 여부에 따라서 TabBar를 투명하게 만들지 불투명하게 만들지를 결정할 수 있게 만들었습니다.@Observableclass ViewState { var stack = NavigationPath() var topTabBarExist = true}  @Bindable var bindableViewState =..
SwiftUI - 버튼, 텍스트 터치 영역 확장시키기
·
SwiftUI
버튼과 텍스트의 터치 가능한 영역을 확장시키는 법을 다루겠습니다  Button 터치 영역 확장시키기일반적으로는 아래 코드에서는 버튼을 클릭하기 위해서는 label 의 컨텐츠를 직접적으로 눌러야합니다.Button { } label: { Text("1")}Button { } label: { Text("2")}Button { } label: { Text("3")} 하지만 Button 의 Text 의 글짜 외에도 터치를 할 수 있는 방법도 존재합니다. 해결방법frame 에 maxWidth를 아래처럼 .infinity 로 설정하면 1을 제외한 다른 영역 또한 터치가 가능합니다.Button { } label: { Text("1") .frame(maxWidth: .infinity) ..
ytw_developer
'SwiftUI' 카테고리의 글 목록 (5 Page)