Skip to content
This repository was archived by the owner on Jun 17, 2023. It is now read-only.

Commit e451dc1

Browse files
authored
Merge pull request #21 from amirdew/improve-layout-designer
Improve layout designer
2 parents 44c76c6 + ba5a59c commit e451dc1

File tree

51 files changed

+1505
-63
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

51 files changed

+1505
-63
lines changed

.swiftlint.yml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,7 @@ opt_in_rules:
3737
excluded:
3838
- Package.swift
3939
- Pods
40+
- PagingLayoutSamples/SampleProject
4041

4142
# adjusting rules
4243

Samples/PagingLayoutSamples.xcodeproj/project.pbxproj

Lines changed: 45 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,12 @@
1919
2977657E2474531D00835DBD /* LayoutDesignerOptionCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = 2977657D2474531D00835DBD /* LayoutDesignerOptionCell.xib */; };
2020
29776580247454BC00835DBD /* LayoutDesignerOptionCellViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2977657F247454BC00835DBD /* LayoutDesignerOptionCellViewModel.swift */; };
2121
2993722324A79A9C0026D52F /* ShapeLayout+ScaleOptions.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2993722224A79A9C0026D52F /* ShapeLayout+ScaleOptions.swift */; };
22+
29A2D3AA24B72895005A0F6B /* LayoutDesignerCodePreviewViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = 29A2D3A924B72895005A0F6B /* LayoutDesignerCodePreviewViewController.xib */; };
23+
29A2D3CD24B738CC005A0F6B /* LayoutDesignerIntroViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 29A2D3CC24B738CC005A0F6B /* LayoutDesignerIntroViewController.swift */; };
24+
29A2D3D124B738E5005A0F6B /* LayoutDesignerIntroViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 29A2D3D024B738E5005A0F6B /* LayoutDesignerIntroViewModel.swift */; };
25+
29A2D3D324B73A19005A0F6B /* LayoutDesignerIntroCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 29A2D3D224B73A19005A0F6B /* LayoutDesignerIntroCell.swift */; };
26+
29A2D3D524B73AB7005A0F6B /* LayoutDesignerIntroInfo.swift in Sources */ = {isa = PBXBuildFile; fileRef = 29A2D3D424B73AB7005A0F6B /* LayoutDesignerIntroInfo.swift */; };
27+
29A2D3D724B73CB1005A0F6B /* LayoutDesignerIntroCell.xib in Resources */ = {isa = PBXBuildFile; fileRef = 29A2D3D624B73CB1005A0F6B /* LayoutDesignerIntroCell.xib */; };
2228
29B5A72024A7B02900C9843E /* ShapeLayout+StackOptions.swift in Sources */ = {isa = PBXBuildFile; fileRef = 29B5A71F24A7B02900C9843E /* ShapeLayout+StackOptions.swift */; };
2329
29B5A72224A7B06300C9843E /* ShapeLayout+SnapshotOptions.swift in Sources */ = {isa = PBXBuildFile; fileRef = 29B5A72124A7B06300C9843E /* ShapeLayout+SnapshotOptions.swift */; };
2430
29B5A72424A8CC4B00C9843E /* CGFloat+String.swift in Sources */ = {isa = PBXBuildFile; fileRef = 29B5A72324A8CC4B00C9843E /* CGFloat+String.swift */; };
@@ -27,6 +33,7 @@
2733
29B5A72A24A8D94300C9843E /* Values+Pair.swift in Sources */ = {isa = PBXBuildFile; fileRef = 29B5A72924A8D94300C9843E /* Values+Pair.swift */; };
2834
29B5A72C24A8DD7100C9843E /* UIBlurEffect.Style+Name.swift in Sources */ = {isa = PBXBuildFile; fileRef = 29B5A72B24A8DD7100C9843E /* UIBlurEffect.Style+Name.swift */; };
2935
29BEC4D52476DD9D004BA505 /* LayoutDesignerOptionsTableView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 29BEC4D42476DD9D004BA505 /* LayoutDesignerOptionsTableView.swift */; };
36+
29CE3D4624B7763C00380DCD /* SampleProject.bundle in Resources */ = {isa = PBXBuildFile; fileRef = 29CE3D4524B7763C00380DCD /* SampleProject.bundle */; };
3037
29D9F94323F7F98800656A67 /* ShapesViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 29D9F94223F7F98800656A67 /* ShapesViewController.swift */; };
3138
29D9F94523F7F99400656A67 /* ShapesViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 29D9F94423F7F99400656A67 /* ShapesViewModel.swift */; };
3239
29D9F94723F7F9B700656A67 /* ShapesViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = 29D9F94623F7F9B700656A67 /* ShapesViewController.xib */; };
@@ -122,6 +129,12 @@
122129
2977657D2474531D00835DBD /* LayoutDesignerOptionCell.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = LayoutDesignerOptionCell.xib; sourceTree = "<group>"; };
123130
2977657F247454BC00835DBD /* LayoutDesignerOptionCellViewModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LayoutDesignerOptionCellViewModel.swift; sourceTree = "<group>"; };
124131
2993722224A79A9C0026D52F /* ShapeLayout+ScaleOptions.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "ShapeLayout+ScaleOptions.swift"; sourceTree = "<group>"; };
132+
29A2D3A924B72895005A0F6B /* LayoutDesignerCodePreviewViewController.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = LayoutDesignerCodePreviewViewController.xib; sourceTree = "<group>"; };
133+
29A2D3CC24B738CC005A0F6B /* LayoutDesignerIntroViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LayoutDesignerIntroViewController.swift; sourceTree = "<group>"; };
134+
29A2D3D024B738E5005A0F6B /* LayoutDesignerIntroViewModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LayoutDesignerIntroViewModel.swift; sourceTree = "<group>"; };
135+
29A2D3D224B73A19005A0F6B /* LayoutDesignerIntroCell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LayoutDesignerIntroCell.swift; sourceTree = "<group>"; };
136+
29A2D3D424B73AB7005A0F6B /* LayoutDesignerIntroInfo.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LayoutDesignerIntroInfo.swift; sourceTree = "<group>"; };
137+
29A2D3D624B73CB1005A0F6B /* LayoutDesignerIntroCell.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = LayoutDesignerIntroCell.xib; sourceTree = "<group>"; };
125138
29B5A71F24A7B02900C9843E /* ShapeLayout+StackOptions.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "ShapeLayout+StackOptions.swift"; sourceTree = "<group>"; };
126139
29B5A72124A7B06300C9843E /* ShapeLayout+SnapshotOptions.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "ShapeLayout+SnapshotOptions.swift"; sourceTree = "<group>"; };
127140
29B5A72324A8CC4B00C9843E /* CGFloat+String.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "CGFloat+String.swift"; sourceTree = "<group>"; };
@@ -130,6 +143,7 @@
130143
29B5A72924A8D94300C9843E /* Values+Pair.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "Values+Pair.swift"; sourceTree = "<group>"; };
131144
29B5A72B24A8DD7100C9843E /* UIBlurEffect.Style+Name.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "UIBlurEffect.Style+Name.swift"; sourceTree = "<group>"; };
132145
29BEC4D42476DD9D004BA505 /* LayoutDesignerOptionsTableView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LayoutDesignerOptionsTableView.swift; sourceTree = "<group>"; };
146+
29CE3D4524B7763C00380DCD /* SampleProject.bundle */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.plug-in"; path = SampleProject.bundle; sourceTree = "<group>"; };
133147
29D9F94223F7F98800656A67 /* ShapesViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ShapesViewController.swift; sourceTree = "<group>"; };
134148
29D9F94423F7F99400656A67 /* ShapesViewModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ShapesViewModel.swift; sourceTree = "<group>"; };
135149
29D9F94623F7F9B700656A67 /* ShapesViewController.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = ShapesViewController.xib; sourceTree = "<group>"; };
@@ -152,7 +166,7 @@
152166
AB1BBA9923CA5178004E5C3B /* CardCollectionViewCell.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = CardCollectionViewCell.swift; sourceTree = "<group>"; };
153167
AB1BBA9A23CA5179004E5C3B /* CardCollectionViewCell.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = CardCollectionViewCell.xib; sourceTree = "<group>"; };
154168
AB1E03AE23B25CE70087F904 /* PageControlView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PageControlView.swift; sourceTree = "<group>"; };
155-
AB500A2F23B104E20056BE37 /* Paging Layout.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = "Paging Layout.app"; sourceTree = BUILT_PRODUCTS_DIR; };
169+
AB500A2F23B104E20056BE37 /* Layout Designer.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = "Layout Designer.app"; sourceTree = BUILT_PRODUCTS_DIR; };
156170
AB500A3223B104E20056BE37 /* AppDelegate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppDelegate.swift; sourceTree = "<group>"; };
157171
AB500A3B23B104E60056BE37 /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = "<group>"; };
158172
AB500A3E23B104E60056BE37 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/LaunchScreen.storyboard; sourceTree = "<group>"; };
@@ -217,6 +231,7 @@
217231
292489AE2461A96600A316B0 /* LayoutDesigner */ = {
218232
isa = PBXGroup;
219233
children = (
234+
29A2D3CB24B73870005A0F6B /* Intro */,
220235
29FF296024A631DC00C83DF9 /* Code */,
221236
2977657A247452BC00835DBD /* Options */,
222237
292489AF2461A97900A316B0 /* LayoutDesignerViewController.swift */,
@@ -246,6 +261,17 @@
246261
path = Options;
247262
sourceTree = "<group>";
248263
};
264+
29A2D3CB24B73870005A0F6B /* Intro */ = {
265+
isa = PBXGroup;
266+
children = (
267+
29A2D3CC24B738CC005A0F6B /* LayoutDesignerIntroViewController.swift */,
268+
29A2D3D024B738E5005A0F6B /* LayoutDesignerIntroViewModel.swift */,
269+
29A2D3D224B73A19005A0F6B /* LayoutDesignerIntroCell.swift */,
270+
29A2D3D624B73CB1005A0F6B /* LayoutDesignerIntroCell.xib */,
271+
);
272+
path = Intro;
273+
sourceTree = "<group>";
274+
};
249275
29BEC4D62476DDA7004BA505 /* cell */ = {
250276
isa = PBXGroup;
251277
children = (
@@ -295,6 +321,7 @@
295321
isa = PBXGroup;
296322
children = (
297323
29FF296124A6321100C83DF9 /* LayoutDesignerCodePreviewViewController.swift */,
324+
29A2D3A924B72895005A0F6B /* LayoutDesignerCodePreviewViewController.xib */,
298325
29FF296324A6321B00C83DF9 /* LayoutDesignerCodePreviewViewModel.swift */,
299326
);
300327
path = Code;
@@ -355,7 +382,7 @@
355382
AB500A3023B104E20056BE37 /* Products */ = {
356383
isa = PBXGroup;
357384
children = (
358-
AB500A2F23B104E20056BE37 /* Paging Layout.app */,
385+
AB500A2F23B104E20056BE37 /* Layout Designer.app */,
359386
292489B72461F07D00A316B0 /* AppKitGlue.bundle */,
360387
);
361388
name = Products;
@@ -376,6 +403,7 @@
376403
AB500A4023B104E60056BE37 /* Info.plist */,
377404
292489CA24620BD600A316B0 /* AppKitBridge.h */,
378405
292489CB24620C4D00A316B0 /* PagingLayoutSamples-Bridging-Header.h */,
406+
29CE3D4524B7763C00380DCD /* SampleProject.bundle */,
379407
);
380408
path = PagingLayoutSamples;
381409
sourceTree = "<group>";
@@ -399,6 +427,7 @@
399427
2925CDDE23D4D21F00243F5F /* Card.swift */,
400428
ABA0DA0023F93CA3004A9C18 /* ShapeLayout.swift */,
401429
ABA0DA0223F93CDB004A9C18 /* Shape.swift */,
430+
29A2D3D424B73AB7005A0F6B /* LayoutDesignerIntroInfo.swift */,
402431
);
403432
path = Models;
404433
sourceTree = "<group>";
@@ -539,7 +568,7 @@
539568
);
540569
name = PagingLayoutSamples;
541570
productName = CollectionViewPagingLayout;
542-
productReference = AB500A2F23B104E20056BE37 /* Paging Layout.app */;
571+
productReference = AB500A2F23B104E20056BE37 /* Layout Designer.app */;
543572
productType = "com.apple.product-type.application";
544573
};
545574
/* End PBXNativeTarget section */
@@ -598,15 +627,18 @@
598627
AB500A5F23B154950056BE37 /* FruitsCollectionViewCell.xib in Resources */,
599628
AB1BBA9F23CA7BE3004E5C3B /* CardsViewController.xib in Resources */,
600629
2977657E2474531D00835DBD /* LayoutDesignerOptionCell.xib in Resources */,
630+
29CE3D4624B7763C00380DCD /* SampleProject.bundle in Resources */,
601631
29D9F94723F7F9B700656A67 /* ShapesViewController.xib in Resources */,
602632
ABC242D023B6861000DBD4D6 /* PhotoCollectionViewCell.xib in Resources */,
603633
ABA0DA0A23F98B70004A9C18 /* ShapeCardView.xib in Resources */,
604634
292489B22461E31300A316B0 /* LayoutDesignerViewController.xib in Resources */,
605635
AB500A4C23B13BC90056BE37 /* FruitsViewController.xib in Resources */,
606636
AB500A3C23B104E60056BE37 /* Assets.xcassets in Resources */,
607637
AB1BBA9D23CA5179004E5C3B /* CardCollectionViewCell.xib in Resources */,
638+
29A2D3D724B73CB1005A0F6B /* LayoutDesignerIntroCell.xib in Resources */,
608639
AB7C1E0823B4E2C0006441DE /* MainViewController.xib in Resources */,
609640
ABA1A72E23B42247006A46A3 /* PriceTagView.xib in Resources */,
641+
29A2D3AA24B72895005A0F6B /* LayoutDesignerCodePreviewViewController.xib in Resources */,
610642
ABA1A73323B422B9006A46A3 /* QuantityControllerView.xib in Resources */,
611643
);
612644
runOnlyForDeploymentPostprocessing = 0;
@@ -687,13 +719,16 @@
687719
buildActionMask = 2147483647;
688720
files = (
689721
ABC242CE23B6860700DBD4D6 /* PhotoCollectionViewCell.swift in Sources */,
722+
29A2D3D324B73A19005A0F6B /* LayoutDesignerIntroCell.swift in Sources */,
690723
2925CDDF23D4D21F00243F5F /* Card.swift in Sources */,
691724
29D9F95023F806C400656A67 /* Optional+Let.swift in Sources */,
692725
ABA1A72C23B42240006A46A3 /* PriceTagView.swift in Sources */,
693726
ABA0DA0C23F98C78004A9C18 /* ShapeCardViewModel.swift in Sources */,
727+
29A2D3CD24B738CC005A0F6B /* LayoutDesignerIntroViewController.swift in Sources */,
694728
ABA0DA0E23F98ECD004A9C18 /* UICollectionViewCell+Utilities.swift in Sources */,
695729
AB1E03AF23B25CE70087F904 /* PageControlView.swift in Sources */,
696730
29B5A72224A7B06300C9843E /* ShapeLayout+SnapshotOptions.swift in Sources */,
731+
29A2D3D524B73AB7005A0F6B /* LayoutDesignerIntroInfo.swift in Sources */,
697732
29776580247454BC00835DBD /* LayoutDesignerOptionCellViewModel.swift in Sources */,
698733
AB1BBA9B23CA5179004E5C3B /* CardCellViewModel.swift in Sources */,
699734
AB500A5023B151780056BE37 /* FruitsViewModel.swift in Sources */,
@@ -729,6 +764,7 @@
729764
29B5A72624A8D8B300C9843E /* OptionsCodeGenerator.swift in Sources */,
730765
29D9F94523F7F99400656A67 /* ShapesViewModel.swift in Sources */,
731766
29B5A72024A7B02900C9843E /* ShapeLayout+StackOptions.swift in Sources */,
767+
29A2D3D124B738E5005A0F6B /* LayoutDesignerIntroViewModel.swift in Sources */,
732768
AB500A5B23B154640056BE37 /* FruitsCollectionViewCell.swift in Sources */,
733769
ABA1A73123B422B2006A46A3 /* QuantityControllerView.swift in Sources */,
734770
29BEC4D52476DD9D004BA505 /* LayoutDesignerOptionsTableView.swift in Sources */,
@@ -939,14 +975,16 @@
939975
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
940976
CODE_SIGN_ENTITLEMENTS = "PagingLayoutSamples/Paging Layout.entitlements";
941977
CODE_SIGN_STYLE = Automatic;
978+
CURRENT_PROJECT_VERSION = 2;
942979
DEVELOPMENT_TEAM = 4J5W7CJ2ZV;
943980
INFOPLIST_FILE = PagingLayoutSamples/Info.plist;
944981
LD_RUNPATH_SEARCH_PATHS = (
945982
"$(inherited)",
946983
"@executable_path/Frameworks",
947984
);
985+
MARKETING_VERSION = 1.0.0;
948986
PRODUCT_BUNDLE_IDENTIFIER = app.amir.paginglayout;
949-
PRODUCT_NAME = "Paging Layout";
987+
PRODUCT_NAME = "Layout Designer";
950988
SUPPORTS_MACCATALYST = YES;
951989
SWIFT_OBJC_BRIDGING_HEADER = "PagingLayoutSamples/PagingLayoutSamples-Bridging-Header.h";
952990
SWIFT_VERSION = 5.0;
@@ -962,14 +1000,16 @@
9621000
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
9631001
CODE_SIGN_ENTITLEMENTS = "PagingLayoutSamples/Paging Layout.entitlements";
9641002
CODE_SIGN_STYLE = Automatic;
1003+
CURRENT_PROJECT_VERSION = 2;
9651004
DEVELOPMENT_TEAM = 4J5W7CJ2ZV;
9661005
INFOPLIST_FILE = PagingLayoutSamples/Info.plist;
9671006
LD_RUNPATH_SEARCH_PATHS = (
9681007
"$(inherited)",
9691008
"@executable_path/Frameworks",
9701009
);
1010+
MARKETING_VERSION = 1.0.0;
9711011
PRODUCT_BUNDLE_IDENTIFIER = app.amir.paginglayout;
972-
PRODUCT_NAME = "Paging Layout";
1012+
PRODUCT_NAME = "Layout Designer";
9731013
SUPPORTS_MACCATALYST = YES;
9741014
SWIFT_OBJC_BRIDGING_HEADER = "PagingLayoutSamples/PagingLayoutSamples-Bridging-Header.h";
9751015
SWIFT_VERSION = 5.0;

Samples/PagingLayoutSamples.xcodeproj/xcshareddata/xcschemes/PagingLayoutSamples.xcscheme

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@
1515
<BuildableReference
1616
BuildableIdentifier = "primary"
1717
BlueprintIdentifier = "AB500A2E23B104E20056BE37"
18-
BuildableName = "Paging Layout.app"
18+
BuildableName = "Layout Designer.app"
1919
BlueprintName = "PagingLayoutSamples"
2020
ReferencedContainer = "container:PagingLayoutSamples.xcodeproj">
2121
</BuildableReference>
@@ -45,7 +45,7 @@
4545
<BuildableReference
4646
BuildableIdentifier = "primary"
4747
BlueprintIdentifier = "AB500A2E23B104E20056BE37"
48-
BuildableName = "Paging Layout.app"
48+
BuildableName = "Layout Designer.app"
4949
BlueprintName = "PagingLayoutSamples"
5050
ReferencedContainer = "container:PagingLayoutSamples.xcodeproj">
5151
</BuildableReference>
@@ -62,7 +62,7 @@
6262
<BuildableReference
6363
BuildableIdentifier = "primary"
6464
BlueprintIdentifier = "AB500A2E23B104E20056BE37"
65-
BuildableName = "Paging Layout.app"
65+
BuildableName = "Layout Designer.app"
6666
BlueprintName = "PagingLayoutSamples"
6767
ReferencedContainer = "container:PagingLayoutSamples.xcodeproj">
6868
</BuildableReference>
Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
{
2+
"info" : {
3+
"author" : "xcode",
4+
"version" : 1
5+
}
6+
}
Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
{
2+
"images" : [
3+
{
4+
"filename" : "intro01.png",
5+
"idiom" : "universal",
6+
"scale" : "1x"
7+
},
8+
{
9+
"filename" : "intro01@2x.png",
10+
"idiom" : "universal",
11+
"scale" : "2x"
12+
},
13+
{
14+
"filename" : "intro01@3x.png",
15+
"idiom" : "universal",
16+
"scale" : "3x"
17+
}
18+
],
19+
"info" : {
20+
"author" : "xcode",
21+
"version" : 1
22+
}
23+
}
Loading
Loading
Loading
Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
{
2+
"images" : [
3+
{
4+
"filename" : "intro02.png",
5+
"idiom" : "universal",
6+
"scale" : "1x"
7+
},
8+
{
9+
"filename" : "intro02@2x.png",
10+
"idiom" : "universal",
11+
"scale" : "2x"
12+
},
13+
{
14+
"filename" : "intro02@3x.png",
15+
"idiom" : "universal",
16+
"scale" : "3x"
17+
}
18+
],
19+
"info" : {
20+
"author" : "xcode",
21+
"version" : 1
22+
}
23+
}
Loading

0 commit comments

Comments
 (0)