LinearGradient(colors: [Color.customGrayMedium, Color.customGrayLight], startPoint: .top, endPoint: .bottom)SwiftUI는 그라데이션도 적용할 수 있다! 짱이다
colors 배열 안에 적용할 그라데이션들의 색을 순서대로 써주면, startPoint 방향에서 endPoint 방향으로 그라데이션이 적용된다. UIKit 쓸 때 안드로이드에는 그라데이션 구현이 있는데 iOS는 없는 것 같아서 슬펐는데 ... 기쁘다
TabView {
ForEach(fruits[0...5]) { item in
FruitCardView(fruit: item)
} //: LOOP
} //: TAB
.tabViewStyle(PageTabViewStyle())
.padding(.vertical, 20)
}SwiftUI의 TabView는 UIKit의 PageViewController와 유사하다. 하나의 화면에 여러 개의 View를 보여주는 방식이고,.tabViewStyle() 로 TabView의 스타일도 지정해줄 수 있다. UIKit보다 훨씬 간편하다.
GroupBox() {
HStack {
Text("Content source")
Spacer()
Link("Wikipedia", destination: URL(string: "https://wikipedia.com")!)
Image(systemName: "arrow.up.right.square")
}
.font(.footnote)
}
}사실 Group과 GroupBox의 차이는 사실 잘 모르겠다. 좀 더 공부해보고 수정하겠다!
NavigationView {
List {
ForEach(fruits.shuffled()) { item in
NavigationLink(destination: FruitDetailView(fruit: item)) {
FruitRowView(fruit: item)
.padding(.vertical, 4)
}
}
}
.navigationTitle("Fruits")
.navigationBarItems(
trailing:
Button(action: {
isShowingSettings = true
}) {
Image(systemName: "slider.horizontal.3")
} //: BUTTON
.sheet(isPresented: $isShowingSettings) {
SettingsView()
}
)
} //: NAVIGATION
.navigationViewStyle(StackNavigationViewStyle())
}NavigationView는 SwiftUI의 가장 중요한 구성요소 중 하나라고 한다. 여러 개의 화면을 navigate하며 이동할 수 있고, 이때 NavigationLink를 이용해 다른 View로 넘어갈 수 있다.
NavigationView 상단에 버튼이나 커스텀 View를 추가할 수 있는데, 이 때는 ToolbarItem을 이용한다.
ㅇㅇㄹㅇㄹㅇㄴㅁㅇㄹㅁ더못해더못해 나중에쓸거야