@@ -2,48 +2,97 @@ import SwiftUI
22
33extension Grid {
44 public init < Data, Item> ( _ data: Data , @ViewBuilder item: @escaping ( Data . Element ) -> Item ) where Content == ForEach < Data , Data . Element . ID , Item > , Data : RandomAccessCollection , Item : View , Data. Element : Identifiable {
5- self . items = data. map ( { AnyView ( item ( $0) ) } )
5+ self . items = data. map { GridItem ( view : AnyView ( item ( $0) ) , id : AnyHashable ( $0 . id ) ) }
66 }
77
88 public init < Data, ID, Item> ( _ data: Data , id: KeyPath < Data . Element , ID > , @ViewBuilder item: @escaping ( Data . Element ) -> Item ) where Content == ForEach < Data , ID , Item > , Data : RandomAccessCollection , ID : Hashable , Item : View {
9- self . items = data. map ( { AnyView ( item ( $0) ) } )
9+ self . items = data. map { GridItem ( view : AnyView ( item ( $0) ) , id : AnyHashable ( $0 [ keyPath : id ] ) ) }
1010 }
1111
1212 public init < Item> ( _ data: Range < Int > , @ViewBuilder item: @escaping ( Int ) -> Item ) where Content == ForEach < Range < Int > , Int , Item > , Item : View {
13- self . items = data. map ( { AnyView ( item ( $0) ) } )
13+ self . items = data. map { GridItem ( view : AnyView ( item ( $0) ) , id : AnyHashable ( $0 ) ) }
1414 }
1515}
1616
1717extension Grid {
1818 public init < C0: View , C1: View > ( @ViewBuilder content: ( ) -> Content ) where Content == TupleView < ( C0 , C1 ) > {
19- self . items = [ AnyView ( content ( ) . value. 0 ) , AnyView ( content ( ) . value. 1 ) ]
19+ self . items = [ GridItem ( view: AnyView ( content ( ) . value. 0 ) , id: AnyHashable ( 0 ) ) ,
20+ GridItem ( view: AnyView ( content ( ) . value. 1 ) , id: AnyHashable ( 1 ) ) ]
2021 }
21-
22+
2223 public init < C0: View , C1: View , C2: View > ( @ViewBuilder content: ( ) -> Content ) where Content == TupleView < ( C0 , C1 , C2 ) > {
23- self . items = [ AnyView ( content ( ) . value. 0 ) , AnyView ( content ( ) . value. 1 ) , AnyView ( content ( ) . value. 2 ) ]
24+ self . items = [ GridItem ( view: AnyView ( content ( ) . value. 0 ) , id: AnyHashable ( 0 ) ) ,
25+ GridItem ( view: AnyView ( content ( ) . value. 1 ) , id: AnyHashable ( 1 ) ) ,
26+ GridItem ( view: AnyView ( content ( ) . value. 2 ) , id: AnyHashable ( 2 ) ) ]
2427 }
25-
28+
2629 public init < C0: View , C1: View , C2: View , C3: View > ( @ViewBuilder content: ( ) -> Content ) where Content == TupleView < ( C0 , C1 , C2 , C3 ) > {
27- self . items = [ AnyView ( content ( ) . value. 0 ) , AnyView ( content ( ) . value. 1 ) , AnyView ( content ( ) . value. 2 ) , AnyView ( content ( ) . value. 3 ) ]
30+ self . items = [ GridItem ( view: AnyView ( content ( ) . value. 0 ) , id: AnyHashable ( 0 ) ) ,
31+ GridItem ( view: AnyView ( content ( ) . value. 1 ) , id: AnyHashable ( 1 ) ) ,
32+ GridItem ( view: AnyView ( content ( ) . value. 2 ) , id: AnyHashable ( 2 ) ) ,
33+ GridItem ( view: AnyView ( content ( ) . value. 3 ) , id: AnyHashable ( 3 ) ) ]
2834 }
2935
3036 public init < C0: View , C1: View , C2: View , C3: View , C4: View > ( @ViewBuilder content: ( ) -> Content ) where Content == TupleView < ( C0 , C1 , C2 , C3 , C4 ) > {
31- self . items = [ AnyView ( content ( ) . value. 0 ) , AnyView ( content ( ) . value. 1 ) , AnyView ( content ( ) . value. 2 ) , AnyView ( content ( ) . value. 3 ) , AnyView ( content ( ) . value. 4 ) ]
37+ self . items = [ GridItem ( view: AnyView ( content ( ) . value. 0 ) , id: AnyHashable ( 0 ) ) ,
38+ GridItem ( view: AnyView ( content ( ) . value. 1 ) , id: AnyHashable ( 1 ) ) ,
39+ GridItem ( view: AnyView ( content ( ) . value. 2 ) , id: AnyHashable ( 2 ) ) ,
40+ GridItem ( view: AnyView ( content ( ) . value. 3 ) , id: AnyHashable ( 3 ) ) ,
41+ GridItem ( view: AnyView ( content ( ) . value. 4 ) , id: AnyHashable ( 4 ) ) ]
3242 }
33-
43+
3444 public init < C0: View , C1: View , C2: View , C3: View , C4: View , C5: View > ( @ViewBuilder content: ( ) -> Content ) where Content == TupleView < ( C0 , C1 , C2 , C3 , C4 , C5 ) > {
35- self . items = [ AnyView ( content ( ) . value. 0 ) , AnyView ( content ( ) . value. 1 ) , AnyView ( content ( ) . value. 2 ) , AnyView ( content ( ) . value. 3 ) , AnyView ( content ( ) . value. 4 ) , AnyView ( content ( ) . value. 5 ) ]
45+ self . items = [ GridItem ( view: AnyView ( content ( ) . value. 0 ) , id: AnyHashable ( 0 ) ) ,
46+ GridItem ( view: AnyView ( content ( ) . value. 1 ) , id: AnyHashable ( 1 ) ) ,
47+ GridItem ( view: AnyView ( content ( ) . value. 2 ) , id: AnyHashable ( 2 ) ) ,
48+ GridItem ( view: AnyView ( content ( ) . value. 3 ) , id: AnyHashable ( 3 ) ) ,
49+ GridItem ( view: AnyView ( content ( ) . value. 4 ) , id: AnyHashable ( 4 ) ) ,
50+ GridItem ( view: AnyView ( content ( ) . value. 5 ) , id: AnyHashable ( 5 ) ) ]
3651 }
37-
52+
3853 public init < C0: View , C1: View , C2: View , C3: View , C4: View , C5: View , C6: View > ( @ViewBuilder content: ( ) -> Content ) where Content == TupleView < ( C0 , C1 , C2 , C3 , C4 , C5 , C6 ) > {
39- self . items = [ AnyView ( content ( ) . value. 0 ) , AnyView ( content ( ) . value. 1 ) , AnyView ( content ( ) . value. 2 ) , AnyView ( content ( ) . value. 3 ) , AnyView ( content ( ) . value. 4 ) , AnyView ( content ( ) . value. 5 ) , AnyView ( content ( ) . value. 6 ) ]
54+ self . items = [ GridItem ( view: AnyView ( content ( ) . value. 0 ) , id: AnyHashable ( 0 ) ) ,
55+ GridItem ( view: AnyView ( content ( ) . value. 1 ) , id: AnyHashable ( 1 ) ) ,
56+ GridItem ( view: AnyView ( content ( ) . value. 2 ) , id: AnyHashable ( 2 ) ) ,
57+ GridItem ( view: AnyView ( content ( ) . value. 3 ) , id: AnyHashable ( 3 ) ) ,
58+ GridItem ( view: AnyView ( content ( ) . value. 4 ) , id: AnyHashable ( 4 ) ) ,
59+ GridItem ( view: AnyView ( content ( ) . value. 5 ) , id: AnyHashable ( 5 ) ) ,
60+ GridItem ( view: AnyView ( content ( ) . value. 6 ) , id: AnyHashable ( 6 ) ) ]
4061 }
41-
62+
63+ public init < C0: View , C1: View , C2: View , C3: View , C4: View , C5: View , C6: View , C7: View > ( @ViewBuilder content: ( ) -> Content ) where Content == TupleView < ( C0 , C1 , C2 , C3 , C4 , C5 , C6 , C7 ) > {
64+ self . items = [ GridItem ( view: AnyView ( content ( ) . value. 0 ) , id: AnyHashable ( 0 ) ) ,
65+ GridItem ( view: AnyView ( content ( ) . value. 1 ) , id: AnyHashable ( 1 ) ) ,
66+ GridItem ( view: AnyView ( content ( ) . value. 2 ) , id: AnyHashable ( 2 ) ) ,
67+ GridItem ( view: AnyView ( content ( ) . value. 3 ) , id: AnyHashable ( 3 ) ) ,
68+ GridItem ( view: AnyView ( content ( ) . value. 4 ) , id: AnyHashable ( 4 ) ) ,
69+ GridItem ( view: AnyView ( content ( ) . value. 5 ) , id: AnyHashable ( 5 ) ) ,
70+ GridItem ( view: AnyView ( content ( ) . value. 6 ) , id: AnyHashable ( 6 ) ) ,
71+ GridItem ( view: AnyView ( content ( ) . value. 7 ) , id: AnyHashable ( 7 ) ) ]
72+ }
73+
4274 public init < C0: View , C1: View , C2: View , C3: View , C4: View , C5: View , C6: View , C7: View , C8: View > ( @ViewBuilder content: ( ) -> Content ) where Content == TupleView < ( C0 , C1 , C2 , C3 , C4 , C5 , C6 , C7 , C8 ) > {
43- self . items = [ AnyView ( content ( ) . value. 0 ) , AnyView ( content ( ) . value. 1 ) , AnyView ( content ( ) . value. 2 ) , AnyView ( content ( ) . value. 3 ) , AnyView ( content ( ) . value. 4 ) , AnyView ( content ( ) . value. 5 ) , AnyView ( content ( ) . value. 6 ) , AnyView ( content ( ) . value. 7 ) , AnyView ( content ( ) . value. 8 ) ]
75+ self . items = [ GridItem ( view: AnyView ( content ( ) . value. 0 ) , id: AnyHashable ( 0 ) ) ,
76+ GridItem ( view: AnyView ( content ( ) . value. 1 ) , id: AnyHashable ( 1 ) ) ,
77+ GridItem ( view: AnyView ( content ( ) . value. 2 ) , id: AnyHashable ( 2 ) ) ,
78+ GridItem ( view: AnyView ( content ( ) . value. 3 ) , id: AnyHashable ( 3 ) ) ,
79+ GridItem ( view: AnyView ( content ( ) . value. 4 ) , id: AnyHashable ( 4 ) ) ,
80+ GridItem ( view: AnyView ( content ( ) . value. 5 ) , id: AnyHashable ( 5 ) ) ,
81+ GridItem ( view: AnyView ( content ( ) . value. 6 ) , id: AnyHashable ( 6 ) ) ,
82+ GridItem ( view: AnyView ( content ( ) . value. 7 ) , id: AnyHashable ( 7 ) ) ,
83+ GridItem ( view: AnyView ( content ( ) . value. 8 ) , id: AnyHashable ( 8 ) ) ]
4484 }
45-
85+
4686 public init < C0: View , C1: View , C2: View , C3: View , C4: View , C5: View , C6: View , C7: View , C8: View , C9: View > ( @ViewBuilder content: ( ) -> Content ) where Content == TupleView < ( C0 , C1 , C2 , C3 , C4 , C5 , C6 , C7 , C8 , C9 ) > {
47- self . items = [ AnyView ( content ( ) . value. 0 ) , AnyView ( content ( ) . value. 1 ) , AnyView ( content ( ) . value. 2 ) , AnyView ( content ( ) . value. 3 ) , AnyView ( content ( ) . value. 4 ) , AnyView ( content ( ) . value. 5 ) , AnyView ( content ( ) . value. 6 ) , AnyView ( content ( ) . value. 7 ) , AnyView ( content ( ) . value. 8 ) , AnyView ( content ( ) . value. 9 ) ]
87+ self . items = [ GridItem ( view: AnyView ( content ( ) . value. 0 ) , id: AnyHashable ( 0 ) ) ,
88+ GridItem ( view: AnyView ( content ( ) . value. 1 ) , id: AnyHashable ( 1 ) ) ,
89+ GridItem ( view: AnyView ( content ( ) . value. 2 ) , id: AnyHashable ( 2 ) ) ,
90+ GridItem ( view: AnyView ( content ( ) . value. 3 ) , id: AnyHashable ( 3 ) ) ,
91+ GridItem ( view: AnyView ( content ( ) . value. 4 ) , id: AnyHashable ( 4 ) ) ,
92+ GridItem ( view: AnyView ( content ( ) . value. 5 ) , id: AnyHashable ( 5 ) ) ,
93+ GridItem ( view: AnyView ( content ( ) . value. 6 ) , id: AnyHashable ( 6 ) ) ,
94+ GridItem ( view: AnyView ( content ( ) . value. 7 ) , id: AnyHashable ( 7 ) ) ,
95+ GridItem ( view: AnyView ( content ( ) . value. 8 ) , id: AnyHashable ( 8 ) ) ,
96+ GridItem ( view: AnyView ( content ( ) . value. 9 ) , id: AnyHashable ( 9 ) ) ]
4897 }
4998}
0 commit comments