반응형
LinkedIn
개발자로 성장하면서 남긴 발자취들을 확인하실 수 있습니다.
Github
WWDC Student Challenge 및 Cherish, Tiramisul 등 개발한 앱들의 코드를 확인하실 수 있습니다.
개인 앱 : Cherish
내 마음을 들여다보는 시간, 체리시는 디자이너와 PM과 함께 진행 중인 1인 개발 프로젝트입니다.
10년 후, 20년 후 나는 어떤 스토리 텔러가 되어 있을지 궁금하다. 내가 만약에 아직 조금 더 탐구하고 싶은 게 있고, 궁금한 게 있다면, 그게 설사 지금 당장의 내 인생에 도움이 안 되는 것 같더라도 경험해보자. 그 경험들을 온전히 즐기며 내 것으로 만들고, 내 일에 녹여내고... 그러다보면 그 점들이 모여 나란 사람을 그려내는 선이 될 테니까.
Recent Posts
Recent Comments
- Total
꿈꾸는리버리
SwiftUI에서 modifier 분기 처리하기 본문
반응형
만약 iOS가 14일 때만 foreground를 red로 주고 싶다고 하자.
1. View를 분기 처리 하기
struct ContentView: View {
var body: some View {
if #available(iOS 14.0, *) {
Text("iOS 14.0")
.padding()
.foreground(Color.red)
} else {
Text("iOS 14.0 아님")
.padding()
}
}
}
2. modifier를 분기 처리 하기
이렇게 View extension에 분기 처리를 할 수 있는 함수를 추가하고,
extension View {
/// Applies the given transform if the given condition evaluates to `true`.
/// - Parameters:
/// - condition: The condition to evaluate.
/// - transform: The transform to apply to the source `View`.
/// - Returns: Either the original `View` or the modified `View` if the condition is `true`.
@ViewBuilder func `if`<Content: View>(_ condition: Bool, transform: (Self) -> Content) -> some View {
if condition {
transform(self)
} else {
self
}
}
}
해당 bool 값을 이용해서 적용할 수 있다.
extension Bool {
static var iOS14: Bool {
guard #available(iOS 14, *) else {
// 14가 아닐 때
return false
}
// 14 일 때
return true
}
}
struct ContentView: View {
var body: some View {
Text("iOS 14.0 아님")
.padding()
.if(.iOS14) { view in
// 14일 때만 적용이 됨
view.foreground(Color.red)
}
}
}
반응형
'오뚝이 개발자 > SwiftUI' 카테고리의 다른 글
[Swift Concurrency 1] 에러처리 try-catch문 / Result (1) | 2024.02.02 |
---|---|
[iOS] Sign In with Apple 구현하기 (0) | 2023.09.23 |
SwiftUI Widget 딱대(짐).. : localization 적용 (2) | 2022.09.15 |
SwiftUI Widget 딱대(짐).. : 위젯 memory 제한 (2) | 2022.09.15 |
swiftUI list drag and drop (0) | 2022.09.07 |
Comments