반응형
그림 1. xcode에서 프로젝트를 생성한다.
그림 2.와 같이 iOS에서 App를 선택한다.
그림 3.과 같이 프로젝트명을 쓰고 Interface에서 SwiftUI를 선택한다. 그리고 Language는 Swift를 선택한다.
// 프로젝트명 + App.swift
import SwiftUI
@main
struct LandmarksApp: App {
var body: some Scene {
WindowGroup {
ContentView()
}
}
}
기본적으로 프로젝트명 + App.swift와 ContentView.swift 파일이 생성된다.
Xcode에서 ContentView.swift 파일을 선택하면 그림 4.와 같이 왼쪽에는 코드가 오른쪽에는 미리보기가 보인다.
신규 swiftUI 파일을 만들때는 File > New > File을 선택한다. 그리고 그림 5.와 같이 iOS 내 User Interface에서 SwiftUI View를 선택하여 신규 파일을 만든다.
// ContentView.swift
import SwiftUI
struct ContentView: View {
var body: some View {
VStack {
MapView()
.ignoresSafeArea(edges: .top)
.frame(height: 300)
CircleImage()
.offset(y: -130)
.padding(.bottom, -130)
VStack(alignment: .leading) {
Text("Turtle Rock")
.font(.title)
HStack {
Text("Joshua Tree National Park")
Spacer()
Text("California")
}
.font(.subheadline)
.foregroundColor(.secondary)
Divider()
Text("About Turtle Rock")
.font(.title2)
Text("Descriptive text goes here.")
}
.padding()
Spacer()
}
}
}
struct ContentView_Previews: PreviewProvider {
static var previews: some View {
ContentView()
}
}
// CircleImage.swift
import SwiftUI
struct CircleImage: View {
var body: some View {
Image("turtlerock")
.clipShape(/*@START_MENU_TOKEN@*/Circle()/*@END_MENU_TOKEN@*/)
.overlay {
Circle().stroke(.white, lineWidth: 4)
}
.shadow(radius: 7)
}
}
struct CircleImage_Previews: PreviewProvider {
static var previews: some View {
CircleImage()
}
}
그림 6.은 CircleImage.swift 파일에서 원형 이미지 표현에 대한 계층 구조를 보여주고 있다.
// MapView.swift
import SwiftUI
import MapKit
struct MapView: View {
@State private var region = MKCoordinateRegion(
center: CLLocationCoordinate2D(latitude: 34.011_286, longitude: -116.166_868),
span: MKCoordinateSpan(latitudeDelta: 0.2, longitudeDelta: 0.2)
)
var body: some View {
Map(coordinateRegion: $region)
}
}
struct MapView_Previews: PreviewProvider {
static var previews: some View {
MapView()
}
}
<참조>
https://developer.apple.com/tutorials/swiftui/creating-and-combining-views
Apple Developer Documentation
developer.apple.com
반응형
'프로그램 개발해서 돈벌기 > iOS' 카테고리의 다른 글
[Swift] Collection Types (0) | 2022.10.27 |
---|---|
[Swift] 병렬 프로그래밍(Concurrency Programming) (0) | 2022.10.27 |
[tvOS][SwiftUI] 기본 샘플 앱 설명 (0) | 2022.10.25 |
[Swift] 샘플로 알아 보는 간단한 상속 개념 (0) | 2022.10.21 |
[Swift] 튜플 (Tuple) (0) | 2022.10.13 |
댓글