- Today
- Total
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 | 31 |
- 딥러닝
- MVC
- struct
- SWIFT
- HTTP
- 연산자
- Python
- deeplearning
- Optional
- tapply
- 명령어
- scheduledTimer
- rxswift
- r
- ios
- cocoapods
- sigmoid
- ReLU
- Request
- 시각화
- rest api
- Linux
- barplot
- decode
- swiftUI
- substr
- 오블완
- SQL
- Observable
- 티스토리챌린지
목록iOS/SwiftUI (7)
iOS 개발 기록 블로그
@State, @ObservedObject, @EnvironmentObject 같은 속성 래퍼를 사용한 프로퍼티와일반 프로퍼티(let 또는 var)로 선언되어 사용하는 것들의 차이점은 무엇일까? 🔍 일반 프로퍼티로 선언해서 사용하는 예시public struct MyView: View { ... var someProperty: Bool public init(someProperty: Bool) { self.someProperty = someProperty }이 구조는 SwiftUI에서 뷰 초기화 시 외부에서 값을 전달받고 이후 변경되지 않을 값을 받을 때 사용하는 일반적인 패턴입니다. 💡 왜 @State나 @Binding이 아니라 var인가요? 요약 정리@State내부에서 변경할 로컬 상..
@EnvironmentObject, @ObservedObject, @StateObject는 모두 SwiftUI에서 상태를 공유하거나 관찰할 때 사용하는 **속성 래퍼(property wrapper)**입니다. 각각의 목적과 생성/소유 관계에 따라 다르게 사용되며, 아래와 같은 차이점이 있습니다. 🔹 1. @StateObject 뷰에서 직접 생성하고 소유하는 상태 객체 초기화도 뷰 내부에서 직접 해야 함 (= SomeObject() 형태).소유권(owner): 해당 뷰가 상태를 “소유”함.의도: 해당 뷰가 객체의 라이프사이클을 책임져야 할 때 사용.struct MyView: View { @StateObject var viewModel = MyViewModel() // 여기서 생성 var body:..
🧑💻 코드 import SwiftUI public struct SampleView: View { @State var title: String = "Hi, guys" @Environment(\\.presentationMode) var presentationMode: Binding public var body: some View { VStack { Text(title) .font(.system(size: 26, weight: .bold)) .foregroundColor(.black) .padding() NavigationLink { BaseWebView(url: "") } label: { Text("구글 웹사이트") .padding() } Spacer() } .navigationBarTitleDisplay..

https://developer.apple.com/documentation/swiftui/view/navigationbartitledisplaymode(_:) navigationBarTitleDisplayMode(_:) | Apple Developer Documentation Configures the title display mode for this view. developer.apple.com 🚨 문제 SwiftUI에서 네비게이션바를 커스텀하기 위해 백 버튼을 숨기고 아래에 뷰를 작성하면 네비게이션바와 본문 뷰 사이에 알 수 없는 여백이 있는 경우가 있습니다. .navigationBarBackButtonHidden() 🧑💻 코드 public struct SampleView: View { @State..

🌁 배경 SwiftUI에서 NavigationLink를 활용해서 View를 Push하는 경우 NavigationLink { SampleView() } label: { Text("Push Sample View") } 아래 이미지처럼 네비게이션바 topLeading 위치에 뒤로가기 버튼이 자동으로 노출됩니다. 이를 없애고 네비게이션바를 커스텀해주고 싶을때 아래 코드를 사용해서 뒤로가기 버튼을 지울 수 있습니다. .navigationBarTitleDisplayMode(.inline) .navigationBarBackButtonHidden() 🚨 문제 발생 그런데 이때 문제가 발생하는데 뒤로가기 스와이프 제스처가 동작하지 않는다는 것입니다. ✅ 해결 방법 아래 extension만 추가해주면 정상적으로 뒤로가기 ..

https://developer.apple.com/documentation/swiftui/presentationmode PresentationMode | Apple Developer Documentation An indication whether a view is currently presented by another view. developer.apple.com NavigationBar에 topLeading 위치에 toolbar로 뒤로가기 이미지를 추가한 후 버튼 이벤트를 간단히 추가하는 방법이 있습니다. import SwiftUI public struct SampleView: View { @State var title: String = "안녕하세유, 반가워유" @Environment(\.present..

예를 들어 위와 같은 화면에 버튼이 있다고 생각해보자. 기본적으로 "선택하기" 부분만 클릭이 되고 나머지 백그라운드 부분이 클릭되지 않는다. 이 경우에 아래와 같이 하면 백그라운드 영역도 클릭이 가능하게 된다. struct ChooseButtonView: View { var body: some View { Button(action: { print("Tapped the Button!") }, label: { Text("선택하기") .frame(maxWidth: .infinity) .padding() .background(Color.accentColor) .foregroundColor(.white) .cornerRadius(12) .padding(.horizontal, 20) }) } } Button을 타이..