diff --git a/BikeSwipeView.swift b/BikeSwipeView.swift new file mode 100644 index 0000000..fee5c49 --- /dev/null +++ b/BikeSwipeView.swift @@ -0,0 +1,32 @@ + + +import SwiftUI + + +struct BikeSwipeView: TabContent { + static var title = "BikeSwipe" + static var image = "bicycle" + + + @State var bikes = Bike.all + + var body: some View { + VStack{ + List { + ForEach(bikes) { bike in + Label(bike.name, systemImage: "bicycle") + .foregroundStyle(.white) + .padding(5) + .background(bike.color) + }.onDelete { bikes.remove(atOffsets: $0)} + + + } + } + + } +} + +#Preview { + BikeSwipeView() +} diff --git a/ContentView.swift b/ContentView.swift index 55c25a1..d7d2913 100644 --- a/ContentView.swift +++ b/ContentView.swift @@ -45,9 +45,11 @@ struct ContentView: View { tab(ListView.self) tab(CountView.self) tab(BikeView.self) + tab(BikeSwipeView.self) tab(TrainView.self) tab(SwapperView.self) tab(PaddingView.self) + tab(RangeView.self) }.tabViewStyle(.sidebarAdaptable) } } diff --git a/Models.swift b/Models.swift index c4019d7..1dd05e3 100644 --- a/Models.swift +++ b/Models.swift @@ -62,7 +62,7 @@ struct Bike: @MainActor Vehicle, CustomStringConvertible { func emptyBasket() { print("emptied", Date()) } - static let all = [ + static var all: [Bike] = [ Bike(name: "Specialized",price: 100000.00, color: .purple ), Bike(name: "Giant",price: 120000.00, color: .red ), Bike(name: "Cannondale",price: 110000.00, color: .green ) diff --git a/TheSwiftWeek.xcodeproj/project.pbxproj b/TheSwiftWeek.xcodeproj/project.pbxproj index 0297a80..1101a2f 100644 --- a/TheSwiftWeek.xcodeproj/project.pbxproj +++ b/TheSwiftWeek.xcodeproj/project.pbxproj @@ -11,6 +11,7 @@ 0CC14A892E92EEA900271E8D /* Playground.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0CC14A882E92EEA900271E8D /* Playground.swift */; }; FB2F07E92EA7CB25002BD499 /* ListView.swift in Sources */ = {isa = PBXBuildFile; fileRef = FB2F07E82EA7CB25002BD499 /* ListView.swift */; }; FB79FE462EA8CFD20011678F /* RangeView.swift in Sources */ = {isa = PBXBuildFile; fileRef = FB79FE452EA8CFD20011678F /* RangeView.swift */; }; + FB79FE482EA8F74F0011678F /* BikeSwipeView.swift in Sources */ = {isa = PBXBuildFile; fileRef = FB79FE472EA8F74F0011678F /* BikeSwipeView.swift */; }; FBA00D6D2EA78411006F8B9A /* Localizable.xcstrings in Resources */ = {isa = PBXBuildFile; fileRef = FBA00D6C2EA78411006F8B9A /* Localizable.xcstrings */; }; FBA00D6F2EA78853006F8B9A /* Color.swift in Sources */ = {isa = PBXBuildFile; fileRef = FBA00D6E2EA78850006F8B9A /* Color.swift */; }; FBA00D712EA7A839006F8B9A /* PaddingView.swift in Sources */ = {isa = PBXBuildFile; fileRef = FBA00D702EA7A830006F8B9A /* PaddingView.swift */; }; @@ -30,6 +31,7 @@ 0CC14A882E92EEA900271E8D /* Playground.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Playground.swift; sourceTree = ""; }; FB2F07E82EA7CB25002BD499 /* ListView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ListView.swift; sourceTree = ""; }; FB79FE452EA8CFD20011678F /* RangeView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = RangeView.swift; sourceTree = ""; }; + FB79FE472EA8F74F0011678F /* BikeSwipeView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = BikeSwipeView.swift; sourceTree = ""; }; FBA00D6C2EA78411006F8B9A /* Localizable.xcstrings */ = {isa = PBXFileReference; lastKnownFileType = text.json.xcstrings; path = Localizable.xcstrings; sourceTree = ""; }; FBA00D6E2EA78850006F8B9A /* Color.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Color.swift; sourceTree = ""; }; FBA00D702EA7A830006F8B9A /* PaddingView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PaddingView.swift; sourceTree = ""; }; @@ -67,6 +69,7 @@ FBA6FA5F2EA66C2E00C373EC /* Assets.xcassets */, 0CC14A882E92EEA900271E8D /* Playground.swift */, FBA6FA612EA76AAD00C373EC /* BikeView.swift */, + FB79FE472EA8F74F0011678F /* BikeSwipeView.swift */, FBA6FA652EA7725A00C373EC /* TrainView.swift */, FB2F07E82EA7CB25002BD499 /* ListView.swift */, FB79FE452EA8CFD20011678F /* RangeView.swift */, @@ -160,6 +163,7 @@ buildActionMask = 2147483647; files = ( FBA6FA5E2EA63EA300C373EC /* Models.swift in Sources */, + FB79FE482EA8F74F0011678F /* BikeSwipeView.swift in Sources */, FB79FE462EA8CFD20011678F /* RangeView.swift in Sources */, FBA6FA662EA7725A00C373EC /* TrainView.swift in Sources */, FBA00D752EA7ACE1006F8B9A /* SwapperView.swift in Sources */, diff --git a/TheSwiftWeek.xcodeproj/project.xcworkspace/xcuserdata/rohing73.xcuserdatad/UserInterfaceState.xcuserstate b/TheSwiftWeek.xcodeproj/project.xcworkspace/xcuserdata/rohing73.xcuserdatad/UserInterfaceState.xcuserstate index 7c2dac6..e4a4eff 100644 Binary files a/TheSwiftWeek.xcodeproj/project.xcworkspace/xcuserdata/rohing73.xcuserdatad/UserInterfaceState.xcuserstate and b/TheSwiftWeek.xcodeproj/project.xcworkspace/xcuserdata/rohing73.xcuserdatad/UserInterfaceState.xcuserstate differ