SwiftUI 23

[SwiftUI] Button style

버튼에도 스타일을 적용할 수 있다. 애플에서 Button에 제공해주는 기본 스타일이다. 기본앱에서 많이 본 것 같다. BorderedProminent 스타일 코드를 적용하려면 아래와 같다. 여기서 corner radius 등 다양한 옵션도 추가할 수 있다! BorderedProminent, Bordered의 경우는 padding이 자동으로 어느정도 추가된다. import SwiftUI struct ContentView: View { var body: some View { VStack { Text("BorderedProminent") .bold() Button(action: {}, label: { Text("Button") }) .buttonStyle(.borderedProminent) } } } } 버튼..

[SwiftUI] GeometryReader를 사용했을 때 중앙에 배치하는 방법

문제점 발견 아래와 같이 GeometryReader를 사용하여 VStack안의 모든 내용들을 frame을 나눴을 때 좌표 (0, 0)에 위치해 버리는 문제가 발생한다. import SwiftUI struct ContentView: View { var body: some View { GeometryReader { geometry in VStack{...} } } 아래와 같이 왼쪽으로 하고 싶었던 뷰가 오른쪽처럼 왼쪽 위쪽에 붙어버린다! 왜 이럴까? 왜냐하면 iOS의 View 계층 구조에서 좌측 상단이 기준이기 때문이다. iOS에서 View의 위치는 좌측 상단에서 시작하여 오른쪽으로 갈수록 x좌표가 증가하고, 아래로 갈수록 y좌표가 증가하는 방식으로 정의된다. 흠 어쨌든, GeometryReader를 쓰면 ..

[SwiftUI] TabView 연습과 오류?

이것에 대한 고민이 많았어서 이렇게 글을 남긴다. 나는 탭뷰를 연습해보고 있었다. import SwiftUI struct ContentView: View { var body: some View { VStack{ TabView{ FirstPage() Text("2") Text("3") Text("4") } .tabViewStyle(.page) .indexViewStyle(.page(backgroundDisplayMode: .always)) } } } 위와 같이 PageView같이 형성된다. 나는 여기에 앞뒤로 가는 버튼을 추가해서 좀더 직관적으로 만들고 싶었다. 그래서 추가해봤다. import SwiftUI struct ContentView: View { @State private var page = 0 ..