More cleaning, added min width of cards and scrollable if too many cards are on the screen
This commit is contained in:
		| @@ -132,7 +132,6 @@ struct SetGame { | ||||
|         static let numberOfDifferences = 4 | ||||
|         static let cardsOnTableInTheBeggining = 12 | ||||
|         static let numberOfCardsToDraw = 3 | ||||
|          | ||||
|     } | ||||
|      | ||||
| } | ||||
|   | ||||
| @@ -19,13 +19,6 @@ class SetGameModelView: ObservableObject { | ||||
|     } | ||||
|      | ||||
|     var cardsOnTable: Array<Card> { | ||||
| //        var cardsOnTable: Array<Card> = Array() | ||||
| //        for card in model.cards { | ||||
| //            if (card.isOnTheTable && !card.isMatched) { | ||||
| //                cardsOnTable.append(card) | ||||
| //            } | ||||
| //        } | ||||
| //        return cardsOnTable | ||||
|         model.displayedCards | ||||
|     } | ||||
|      | ||||
|   | ||||
| @@ -12,11 +12,7 @@ struct SetGameView: View { | ||||
|     @ObservedObject var game: SetGameModelView | ||||
|     var body: some View { | ||||
|         VStack { | ||||
|             AspectVGrid(items: game.cardsOnTable, aspectRatio: 2/3) { card in | ||||
|                 CardView(card: card).foregroundColor(.red).onTapGesture { | ||||
|                     game.choose(card) | ||||
|                 } | ||||
|             } | ||||
|             ScrollOrAspectVGrid() | ||||
|             Spacer() | ||||
|             Spacer() | ||||
|             VStack { | ||||
| @@ -30,6 +26,31 @@ struct SetGameView: View { | ||||
|         } | ||||
|     } | ||||
|      | ||||
|     @ViewBuilder | ||||
|     private func ScrollOrAspectVGrid() -> some View { | ||||
|         if (game.cardsOnTable.count <= 21) { | ||||
|                 AspectVGrid(items: game.cardsOnTable, aspectRatio: 2/3) { card in | ||||
|                     CardView(card: card).foregroundColor(.red).onTapGesture { | ||||
|                         game.choose(card) | ||||
|                     } | ||||
|                 } | ||||
|         } | ||||
|         else { | ||||
|             ScrollView { | ||||
|                 LazyVGrid(columns: [GridItem(.adaptive(minimum: 70), spacing: 0)], spacing: 0) { | ||||
|                     ForEach(game.cardsOnTable) { card in | ||||
|                         CardView(card: card) | ||||
|                             .aspectRatio(2/3, contentMode: .fit) | ||||
|                             .foregroundColor(.red) | ||||
|                             .onTapGesture { | ||||
|                             game.choose(card) | ||||
|                         } | ||||
|                     } | ||||
|                 } | ||||
|             } | ||||
|         } | ||||
|     } | ||||
|      | ||||
| } | ||||
|  | ||||
|  | ||||
|   | ||||
		Reference in New Issue
	
	Block a user