Notice
Recent Posts
Recent Comments
Link
| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 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 |
Tags
- Observable
- combine
- scrollview
- Protocol
- swiftUI
- Clean Code
- Human interface guide
- clean architecture
- swift documentation
- tableView
- ribs
- UITextView
- 리펙토링
- 클린 코드
- 애니메이션
- map
- SWIFT
- uiscrollview
- 스위프트
- Refactoring
- Xcode
- RxCocoa
- MVVM
- ios
- HIG
- collectionview
- uitableview
- rxswift
- 리팩토링
- UICollectionView
Archives
- Today
- Total
김종권의 iOS 앱 개발 알아가기
[iOS - SwiftUI] padding(.horizontal, nil)과 padding(.horizontal, 0)의 차이 본문
iOS 응용 (SwiftUI)
[iOS - SwiftUI] padding(.horizontal, nil)과 padding(.horizontal, 0)의 차이
jake-kim 2025. 5. 21. 01:34padding에 nil 할당의 의미
- padding을 설정할때는 nil이나 Double값을 할당 할 수 있는데, 차이가 존재
- padding에 nil을 할당하면 padding()과 같이 시스템에서 알아서 정해주는 default padding으로 세팅됨
- padding에 0을 할당하면 의미 그대로 여백을 주지 않는다는 의미
- 그렇다면 뷰에 padding을 안썼을때 적용되는 것은?
- padding에 0을 할당한것과 동일
- 주의) padding에 nil을 할당하면 padding을 안썼을때와 다르게, 시스템에서 알아서 정해주는 세팅이 되므로 주의할 것
예시
- UI에서 토글을 누를때마다 padding 적용 여부를 보고 싶기 때문에 아래와 같은 if함수 정의
extension View {
@ViewBuilder
func `if`<Content: View>(
_ condition: Bool,
transform: (Self) -> Content
) -> some View {
if condition {
transform(self)
} else {
self
}
}
}
- 토글할때마다 padding(.horizontal, nil)이 적용되도록하여 차이 확인
struct ContentView: View {
@State private var useExplicitPadding = false
var body: some View {
VStack(spacing: 16) {
Text("박스 안 텍스트")
.frame(maxWidth: .infinity)
.background(Color.blue.opacity(0.3))
.if(useExplicitPadding) {
$0.padding(.horizontal, nil)
}
.background(Color.red.opacity(0.2))
Toggle("Use padding(.horizontal, nil)", isOn: $useExplicitPadding)
}
}
}
완성)

'iOS 응용 (SwiftUI)' 카테고리의 다른 글
Comments