SwiftUI - onChange 클로저 내부로 값 변경, 관찰 변경 안될 때
·
SwiftUI/에러해결
SwiftUI 에서는 onChange 를 제공하여 특정 값의 변화를 감지할 수 있습니다  문제 발생이번에는 지도에서 특정 값이 변경되었을 때 sheet를 올라오게 만들기 위해서 onChange 내부에 isPresented 프로퍼티 값을 변경시키도록 코드를 만들었으나 showDetails의 값이 변경되었음에도 불구하고 sheet 가 올라오지 않는 문제를 발견하였습니다. 문제가 되는 코드를 먼저 살펴보겠습니다. 다음은 mapState의 selectedResult 값이 변경되었으면 showDetails 라는 값을 변경시켜 sheet 를 올려보내려는 코드입니다..onChange(of: mapState.selectedResult, { oldValue, newValue in if newValue != nil ..
SwiftUI - MapUserLocationButton 작동 안될 때
·
SwiftUI/에러해결
MapUserLocationButton 를 누르게 되면 현재 자신의 위치로 지도가 이동합니다  문제 인식MapUserLocationButton 를 MapControls 클로저 내부에도 만들어보았고 scope 를 사용하여 클로저 외부에도 만들어 보았으나 버튼이 눌리는 것은 인식이 되나 지도의 내 위치로 이동하지 않는다는 것을 확인하였습니다. 문제 해결 과정이런 문제들을 해결하기 위해서 코드들을 한줄씩 주석 처리하며 문제해결을 시도하였습니다.하지만 주석 처리를 하였지만 그래도 문제가 해결되지 않아 코드를 직접 지우면서 테스트를 진행해본 결과 주석을 safeAreaInset 가 에러의 원인이 되었습니다. 분명 safeAreaInset 내부에 코드는 모두 주석 처리 되어 있었지만 map과 함께 safeAreaI..
SwiftUI - MapKit 에 대한 모든 것
·
SwiftUI
MapKit을 사용하여 지도를 불러와 원하는 기능을 구현할 수 있습니다 간단하게 지도 사용해보기MapKit 을 사용하기 위해서 가장 먼저 MapKit 을 불러와야 합니다.import SwiftUIimport MapKit 지도를 불러오는 방법은 간단합니다. 다음과 같이 Map 만 호출하면 됩니다.- Map 내부에는 Marker(마커) 또는 Annotation(주석) 을 꾸밀 수 있으며 coordinate 는 경도와 위도로 초기화하여 사용됩니다.struct ContentView: View { var body: some View { Map { Marker("San Francisco City Hall", coordinate: cityHallLocation) ..
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..
ytw_developer
'SwiftUI' 카테고리의 글 목록 (4 Page)