From c25c441996f01bf0c7caf1674fc85c717f15a40e Mon Sep 17 00:00:00 2001 From: Ian C Date: Sat, 25 Nov 2023 21:17:23 +0000 Subject: Checkin following lessaon --- metal_test.xcodeproj/project.pbxproj | 8 ++++++ .../test_image.imageset/Contents.json | 21 ++++++++++++++ .../test_image.imageset/test_image.jpg | Bin 0 -> 27129 bytes metal_test/CircleImage.swift | 23 +++++++++++++++ metal_test/ContentView.swift | 21 +++++++++++--- metal_test/MapView.swift | 31 +++++++++++++++++++++ 6 files changed, 100 insertions(+), 4 deletions(-) create mode 100644 metal_test/Assets.xcassets/test_image.imageset/Contents.json create mode 100644 metal_test/Assets.xcassets/test_image.imageset/test_image.jpg create mode 100644 metal_test/CircleImage.swift create mode 100644 metal_test/MapView.swift diff --git a/metal_test.xcodeproj/project.pbxproj b/metal_test.xcodeproj/project.pbxproj index 82a1dc2..42b5659 100644 --- a/metal_test.xcodeproj/project.pbxproj +++ b/metal_test.xcodeproj/project.pbxproj @@ -7,6 +7,8 @@ objects = { /* Begin PBXBuildFile section */ + 3D4E32F62B1290C900968289 /* CircleImage.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3D4E32F52B1290C900968289 /* CircleImage.swift */; }; + 3D4E32F82B12959E00968289 /* MapView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3D4E32F72B12959E00968289 /* MapView.swift */; }; 3D63BC8F2B11E80D007AE59F /* metal_testApp.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3D63BC8E2B11E80D007AE59F /* metal_testApp.swift */; }; 3D63BC912B11E80D007AE59F /* ContentView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3D63BC902B11E80D007AE59F /* ContentView.swift */; }; 3D63BC932B11E80E007AE59F /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 3D63BC922B11E80E007AE59F /* Assets.xcassets */; }; @@ -14,6 +16,8 @@ /* End PBXBuildFile section */ /* Begin PBXFileReference section */ + 3D4E32F52B1290C900968289 /* CircleImage.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CircleImage.swift; sourceTree = ""; }; + 3D4E32F72B12959E00968289 /* MapView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MapView.swift; sourceTree = ""; }; 3D63BC8B2B11E80D007AE59F /* metal_test.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = metal_test.app; sourceTree = BUILT_PRODUCTS_DIR; }; 3D63BC8E2B11E80D007AE59F /* metal_testApp.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = metal_testApp.swift; sourceTree = ""; }; 3D63BC902B11E80D007AE59F /* ContentView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ContentView.swift; sourceTree = ""; }; @@ -55,6 +59,8 @@ 3D63BC8E2B11E80D007AE59F /* metal_testApp.swift */, 3D63BC902B11E80D007AE59F /* ContentView.swift */, 3D63BC922B11E80E007AE59F /* Assets.xcassets */, + 3D4E32F52B1290C900968289 /* CircleImage.swift */, + 3D4E32F72B12959E00968289 /* MapView.swift */, 3D63BC972B11E80E007AE59F /* metal_test.entitlements */, 3D63BC942B11E80E007AE59F /* Preview Content */, ); @@ -140,7 +146,9 @@ buildActionMask = 2147483647; files = ( 3D63BC912B11E80D007AE59F /* ContentView.swift in Sources */, + 3D4E32F82B12959E00968289 /* MapView.swift in Sources */, 3D63BC8F2B11E80D007AE59F /* metal_testApp.swift in Sources */, + 3D4E32F62B1290C900968289 /* CircleImage.swift in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; diff --git a/metal_test/Assets.xcassets/test_image.imageset/Contents.json b/metal_test/Assets.xcassets/test_image.imageset/Contents.json new file mode 100644 index 0000000..5eef421 --- /dev/null +++ b/metal_test/Assets.xcassets/test_image.imageset/Contents.json @@ -0,0 +1,21 @@ +{ + "images" : [ + { + "filename" : "test_image.jpg", + "idiom" : "universal", + "scale" : "1x" + }, + { + "idiom" : "universal", + "scale" : "2x" + }, + { + "idiom" : "universal", + "scale" : "3x" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/metal_test/Assets.xcassets/test_image.imageset/test_image.jpg b/metal_test/Assets.xcassets/test_image.imageset/test_image.jpg new file mode 100644 index 0000000..d119672 Binary files /dev/null and b/metal_test/Assets.xcassets/test_image.imageset/test_image.jpg differ diff --git a/metal_test/CircleImage.swift b/metal_test/CircleImage.swift new file mode 100644 index 0000000..8bb018b --- /dev/null +++ b/metal_test/CircleImage.swift @@ -0,0 +1,23 @@ +// +// CircleImage.swift +// metal_test +// +// Created by Ian C on 25/11/2023. +// + +import SwiftUI + +struct CircleImage: View { + var body: some View { + Image("test_image") + .clipShape(Circle()) + .overlay { + Circle().stroke(Color.gray, lineWidth: 4) + } + .shadow(radius: 7) + } +} + +#Preview { + CircleImage() +} diff --git a/metal_test/ContentView.swift b/metal_test/ContentView.swift index 3318403..481242f 100644 --- a/metal_test/ContentView.swift +++ b/metal_test/ContentView.swift @@ -6,14 +6,27 @@ // import SwiftUI +import Metal struct ContentView: View { var body: some View { VStack { - Image(systemName: "globe") - .imageScale(.large) - .foregroundStyle(.tint) - Text("Hello, world!") + MapView() + .frame(height:300) + CircleImage() + .offset(y:-130) + .padding(.bottom,-130) + VStack { + Text("Turtle Rock") + .font(.title) + HStack { + Text("Joshua Tree National Park") + .font(.subheadline) + Spacer() + Text("California") + .font(.subheadline) + } + } } .padding() } diff --git a/metal_test/MapView.swift b/metal_test/MapView.swift new file mode 100644 index 0000000..e0ebb87 --- /dev/null +++ b/metal_test/MapView.swift @@ -0,0 +1,31 @@ +// +// MapView.swift +// metal_test +// +// Created by Ian C on 25/11/2023. +// + +import SwiftUI +import MapKit + +struct MapView: View { + var body: some View { + Map(initialPosition: .region(region)) + } + + private var region: MKCoordinateRegion { + + MKCoordinateRegion( + + center: CLLocationCoordinate2D(latitude: 34.011_286, longitude: -116.166_868), + + span: MKCoordinateSpan(latitudeDelta: 0.2, longitudeDelta: 0.2) + + ) + + } +} + +#Preview { + MapView() +} -- cgit v1.2.3