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
- 리팩토링
- Human interface guide
- 스위프트
- rxswift
- map
- Protocol
- clean architecture
- combine
- 클린 코드
- collectionview
- swift documentation
- tableView
- HIG
- Clean Code
- UICollectionView
- swiftUI
- Observable
- Xcode
- RxCocoa
- scrollview
- ribs
- SWIFT
- 애니메이션
- 리펙토링
- uiscrollview
- uitableview
- Refactoring
- MVVM
- ios
- UITextView
Archives
- Today
- Total
김종권의 iOS 앱 개발 알아가기
[iOS - SwiftUI] 헷갈리기 쉬운 frame(maxWidth: .infinity) 이해하기 (#Rounded 처리) 본문
iOS 응용 (SwiftUI)
[iOS - SwiftUI] 헷갈리기 쉬운 frame(maxWidth: .infinity) 이해하기 (#Rounded 처리)
jake-kim 2025. 10. 1. 00:35frame(maxWidth: .infinity)의 의미
- "부모가 줄 수 있는 만큼 가로폭을 가득 채워라" 란 의미
- frame(maxWidth: .infinity)는 최대 크기를 제한 한다는 느낌을 주는데 이 의미가 아님
- 다른 예제)
- 아래처럼 텍스트가 좌우 24 패딩을 갖는 뷰 구현?

- 여기도 frame(maxWidth: .infinity)를 추가하여 구현
struct Example1: View {
var body: some View {
VStack {
Text("Hello")
.frame(maxWidth: .infinity) // <-
.background(Color.red)
.padding(.horizontal, 24)
Text("World")
.frame(maxWidth: .infinity)
.background(Color.blue)
.padding(.horizontal, 24)
}
}
}
Rounded 처리 방법
- 보통 외부 마진을 주고 버튼이 수평으로 쫙 펼친 아래와 같은 것을 요건이 있는 경우?

- 구현하다보면 아래처럼 내부 콘텐츠에 fit하게 작성되는 경우가 존재

- 코드
struct ContentView: View {
var body: some View {
VStack(spacing: 0) {
Text("title")
.font(.title)
Spacer()
.frame(height: 8)
Text("desc")
}
.padding(.horizontal, 15)
.padding(.vertical, 20)
.background(Color.blue)
.clipShape(RoundedRectangle(cornerRadius: 16))
.padding(.horizontal, 45)
}
}
- 이럴땐 frame(maxWidth: .infinity)를 추가하여 해결이 가능
- frame(maxWidth: .infinity)는 최대 크기를 고정한다는 느낌을 주는데 이 의미가 아님을 주의
struct ContentView: View {
var body: some View {
VStack(spacing: 0) {
Text("title")
.font(.title)
Spacer()
.frame(height: 8)
Text("desc")
}
.padding(.horizontal, 15)
.padding(.vertical, 20)
.frame(maxWidth: .infinity) //<-
.background(Color.blue)
.clipShape(RoundedRectangle(cornerRadius: 16))
.padding(.horizontal, 45)
}
}'iOS 응용 (SwiftUI)' 카테고리의 다른 글
| [iOS - swift] 4. VScode 단축키 모음 (+깃헙 코파일럿) (0) | 2025.11.19 |
|---|---|
| [iOS - swift] 2. VScode로 깃헙 코파일럿 기능 활용 방법 (github copilot, Ask, Agent, Edit) (0) | 2025.11.05 |
| [iOS - Swift] SwiftUI - Environmnet로 인터페이스 제공 방법 (#링크 텍스트) (1) | 2025.09.24 |
| [iOS - SwiftUI] HStack의 alignment 파라미터 잘 활용하기 (VerticalAlignment) (0) | 2025.06.11 |
| [iOS - SwiftUI] padding(.horizontal, nil)과 padding(.horizontal, 0)의 차이 (0) | 2025.05.21 |
Comments