Skip to content

Commit 8e6faec

Browse files
authored
Support UIPanGesture backed (#8)
1 parent a30d789 commit 8e6faec

File tree

16 files changed

+1053
-169
lines changed

16 files changed

+1053
-169
lines changed

.gitmodules

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
[submodule "submodules/swiftui-scrollview-interoperable-drag-gesture"]
2+
path = submodules/swiftui-scrollview-interoperable-drag-gesture
3+
url = https://github.com/FluidGroup/swiftui-scrollview-interoperable-drag-gesture.git

.swiftformat

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
{
2+
"maximumBlankLines" : 1,
3+
"indentConditionalCompilationBlocks" : false,
4+
"lineLength" : 100,
5+
"rules" : {
6+
"DoNotUseSemicolons" : false
7+
},
8+
"lineBreakBeforeEachGenericRequirement" : true,
9+
"lineBreakBeforeEachArgument" : true,
10+
"indentation" : {
11+
"spaces" : 2
12+
}
13+
}
Lines changed: 359 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,359 @@
1+
// !$*UTF8*$!
2+
{
3+
archiveVersion = 1;
4+
classes = {
5+
};
6+
objectVersion = 70;
7+
objects = {
8+
9+
/* Begin PBXBuildFile section */
10+
4B5794852C4FC44B000BC6F9 /* SwiftUISnapDraggingModifier in Frameworks */ = {isa = PBXBuildFile; productRef = 4B5794842C4FC44B000BC6F9 /* SwiftUISnapDraggingModifier */; };
11+
4BCD74E42C51692C00073BFD /* SwiftUIScrollViewInteroperableDragGesture in Frameworks */ = {isa = PBXBuildFile; productRef = 4BCD74E32C51692C00073BFD /* SwiftUIScrollViewInteroperableDragGesture */; };
12+
/* End PBXBuildFile section */
13+
14+
/* Begin PBXFileReference section */
15+
4B5794722C4FC3F2000BC6F9 /* Development.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = Development.app; sourceTree = BUILT_PRODUCTS_DIR; };
16+
/* End PBXFileReference section */
17+
18+
/* Begin PBXFileSystemSynchronizedRootGroup section */
19+
4B5794742C4FC3F2000BC6F9 /* Development */ = {isa = PBXFileSystemSynchronizedRootGroup; explicitFileTypes = {}; explicitFolders = (); path = Development; sourceTree = "<group>"; };
20+
/* End PBXFileSystemSynchronizedRootGroup section */
21+
22+
/* Begin PBXFrameworksBuildPhase section */
23+
4B57946F2C4FC3F2000BC6F9 /* Frameworks */ = {
24+
isa = PBXFrameworksBuildPhase;
25+
buildActionMask = 2147483647;
26+
files = (
27+
4B5794852C4FC44B000BC6F9 /* SwiftUISnapDraggingModifier in Frameworks */,
28+
4BCD74E42C51692C00073BFD /* SwiftUIScrollViewInteroperableDragGesture in Frameworks */,
29+
);
30+
runOnlyForDeploymentPostprocessing = 0;
31+
};
32+
/* End PBXFrameworksBuildPhase section */
33+
34+
/* Begin PBXGroup section */
35+
4B5794692C4FC3F2000BC6F9 = {
36+
isa = PBXGroup;
37+
children = (
38+
4B5794742C4FC3F2000BC6F9 /* Development */,
39+
4B5794732C4FC3F2000BC6F9 /* Products */,
40+
);
41+
sourceTree = "<group>";
42+
};
43+
4B5794732C4FC3F2000BC6F9 /* Products */ = {
44+
isa = PBXGroup;
45+
children = (
46+
4B5794722C4FC3F2000BC6F9 /* Development.app */,
47+
);
48+
name = Products;
49+
sourceTree = "<group>";
50+
};
51+
/* End PBXGroup section */
52+
53+
/* Begin PBXNativeTarget section */
54+
4B5794712C4FC3F2000BC6F9 /* Development */ = {
55+
isa = PBXNativeTarget;
56+
buildConfigurationList = 4B5794802C4FC3F3000BC6F9 /* Build configuration list for PBXNativeTarget "Development" */;
57+
buildPhases = (
58+
4B57946E2C4FC3F2000BC6F9 /* Sources */,
59+
4B57946F2C4FC3F2000BC6F9 /* Frameworks */,
60+
4B5794702C4FC3F2000BC6F9 /* Resources */,
61+
);
62+
buildRules = (
63+
);
64+
dependencies = (
65+
);
66+
fileSystemSynchronizedGroups = (
67+
4B5794742C4FC3F2000BC6F9 /* Development */,
68+
);
69+
name = Development;
70+
packageProductDependencies = (
71+
4B5794842C4FC44B000BC6F9 /* SwiftUISnapDraggingModifier */,
72+
4BCD74E32C51692C00073BFD /* SwiftUIScrollViewInteroperableDragGesture */,
73+
);
74+
productName = Development;
75+
productReference = 4B5794722C4FC3F2000BC6F9 /* Development.app */;
76+
productType = "com.apple.product-type.application";
77+
};
78+
/* End PBXNativeTarget section */
79+
80+
/* Begin PBXProject section */
81+
4B57946A2C4FC3F2000BC6F9 /* Project object */ = {
82+
isa = PBXProject;
83+
attributes = {
84+
BuildIndependentTargetsInParallel = 1;
85+
LastSwiftUpdateCheck = 1600;
86+
LastUpgradeCheck = 1600;
87+
TargetAttributes = {
88+
4B5794712C4FC3F2000BC6F9 = {
89+
CreatedOnToolsVersion = 16.0;
90+
};
91+
};
92+
};
93+
buildConfigurationList = 4B57946D2C4FC3F2000BC6F9 /* Build configuration list for PBXProject "Development" */;
94+
compatibilityVersion = "Xcode 15.0";
95+
developmentRegion = en;
96+
hasScannedForEncodings = 0;
97+
knownRegions = (
98+
en,
99+
Base,
100+
);
101+
mainGroup = 4B5794692C4FC3F2000BC6F9;
102+
packageReferences = (
103+
4B5794832C4FC44B000BC6F9 /* XCLocalSwiftPackageReference "../../swiftui-snap-dragging-modifier" */,
104+
4BCD74E22C51692C00073BFD /* XCLocalSwiftPackageReference "../submodules/swiftui-scrollview-interoperable-drag-gesture" */,
105+
);
106+
productRefGroup = 4B5794732C4FC3F2000BC6F9 /* Products */;
107+
projectDirPath = "";
108+
projectRoot = "";
109+
targets = (
110+
4B5794712C4FC3F2000BC6F9 /* Development */,
111+
);
112+
};
113+
/* End PBXProject section */
114+
115+
/* Begin PBXResourcesBuildPhase section */
116+
4B5794702C4FC3F2000BC6F9 /* Resources */ = {
117+
isa = PBXResourcesBuildPhase;
118+
buildActionMask = 2147483647;
119+
files = (
120+
);
121+
runOnlyForDeploymentPostprocessing = 0;
122+
};
123+
/* End PBXResourcesBuildPhase section */
124+
125+
/* Begin PBXSourcesBuildPhase section */
126+
4B57946E2C4FC3F2000BC6F9 /* Sources */ = {
127+
isa = PBXSourcesBuildPhase;
128+
buildActionMask = 2147483647;
129+
files = (
130+
);
131+
runOnlyForDeploymentPostprocessing = 0;
132+
};
133+
/* End PBXSourcesBuildPhase section */
134+
135+
/* Begin XCBuildConfiguration section */
136+
4B57947E2C4FC3F3000BC6F9 /* Debug */ = {
137+
isa = XCBuildConfiguration;
138+
buildSettings = {
139+
ALWAYS_SEARCH_USER_PATHS = NO;
140+
ASSETCATALOG_COMPILER_GENERATE_SWIFT_ASSET_SYMBOL_EXTENSIONS = YES;
141+
CLANG_ANALYZER_NONNULL = YES;
142+
CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE;
143+
CLANG_CXX_LANGUAGE_STANDARD = "gnu++20";
144+
CLANG_ENABLE_MODULES = YES;
145+
CLANG_ENABLE_OBJC_ARC = YES;
146+
CLANG_ENABLE_OBJC_WEAK = YES;
147+
CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES;
148+
CLANG_WARN_BOOL_CONVERSION = YES;
149+
CLANG_WARN_COMMA = YES;
150+
CLANG_WARN_CONSTANT_CONVERSION = YES;
151+
CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES;
152+
CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
153+
CLANG_WARN_DOCUMENTATION_COMMENTS = YES;
154+
CLANG_WARN_EMPTY_BODY = YES;
155+
CLANG_WARN_ENUM_CONVERSION = YES;
156+
CLANG_WARN_INFINITE_RECURSION = YES;
157+
CLANG_WARN_INT_CONVERSION = YES;
158+
CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES;
159+
CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES;
160+
CLANG_WARN_OBJC_LITERAL_CONVERSION = YES;
161+
CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
162+
CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES;
163+
CLANG_WARN_RANGE_LOOP_ANALYSIS = YES;
164+
CLANG_WARN_STRICT_PROTOTYPES = YES;
165+
CLANG_WARN_SUSPICIOUS_MOVE = YES;
166+
CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE;
167+
CLANG_WARN_UNREACHABLE_CODE = YES;
168+
CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
169+
COPY_PHASE_STRIP = NO;
170+
DEBUG_INFORMATION_FORMAT = dwarf;
171+
ENABLE_STRICT_OBJC_MSGSEND = YES;
172+
ENABLE_TESTABILITY = YES;
173+
ENABLE_USER_SCRIPT_SANDBOXING = YES;
174+
GCC_C_LANGUAGE_STANDARD = gnu17;
175+
GCC_DYNAMIC_NO_PIC = NO;
176+
GCC_NO_COMMON_BLOCKS = YES;
177+
GCC_OPTIMIZATION_LEVEL = 0;
178+
GCC_PREPROCESSOR_DEFINITIONS = (
179+
"DEBUG=1",
180+
"$(inherited)",
181+
);
182+
GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
183+
GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
184+
GCC_WARN_UNDECLARED_SELECTOR = YES;
185+
GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
186+
GCC_WARN_UNUSED_FUNCTION = YES;
187+
GCC_WARN_UNUSED_VARIABLE = YES;
188+
IPHONEOS_DEPLOYMENT_TARGET = 18.0;
189+
LOCALIZATION_PREFERS_STRING_CATALOGS = YES;
190+
MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE;
191+
MTL_FAST_MATH = YES;
192+
ONLY_ACTIVE_ARCH = YES;
193+
SDKROOT = iphoneos;
194+
SWIFT_ACTIVE_COMPILATION_CONDITIONS = "DEBUG $(inherited)";
195+
SWIFT_OPTIMIZATION_LEVEL = "-Onone";
196+
};
197+
name = Debug;
198+
};
199+
4B57947F2C4FC3F3000BC6F9 /* Release */ = {
200+
isa = XCBuildConfiguration;
201+
buildSettings = {
202+
ALWAYS_SEARCH_USER_PATHS = NO;
203+
ASSETCATALOG_COMPILER_GENERATE_SWIFT_ASSET_SYMBOL_EXTENSIONS = YES;
204+
CLANG_ANALYZER_NONNULL = YES;
205+
CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE;
206+
CLANG_CXX_LANGUAGE_STANDARD = "gnu++20";
207+
CLANG_ENABLE_MODULES = YES;
208+
CLANG_ENABLE_OBJC_ARC = YES;
209+
CLANG_ENABLE_OBJC_WEAK = YES;
210+
CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES;
211+
CLANG_WARN_BOOL_CONVERSION = YES;
212+
CLANG_WARN_COMMA = YES;
213+
CLANG_WARN_CONSTANT_CONVERSION = YES;
214+
CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES;
215+
CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
216+
CLANG_WARN_DOCUMENTATION_COMMENTS = YES;
217+
CLANG_WARN_EMPTY_BODY = YES;
218+
CLANG_WARN_ENUM_CONVERSION = YES;
219+
CLANG_WARN_INFINITE_RECURSION = YES;
220+
CLANG_WARN_INT_CONVERSION = YES;
221+
CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES;
222+
CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES;
223+
CLANG_WARN_OBJC_LITERAL_CONVERSION = YES;
224+
CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
225+
CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES;
226+
CLANG_WARN_RANGE_LOOP_ANALYSIS = YES;
227+
CLANG_WARN_STRICT_PROTOTYPES = YES;
228+
CLANG_WARN_SUSPICIOUS_MOVE = YES;
229+
CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE;
230+
CLANG_WARN_UNREACHABLE_CODE = YES;
231+
CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
232+
COPY_PHASE_STRIP = NO;
233+
DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
234+
ENABLE_NS_ASSERTIONS = NO;
235+
ENABLE_STRICT_OBJC_MSGSEND = YES;
236+
ENABLE_USER_SCRIPT_SANDBOXING = YES;
237+
GCC_C_LANGUAGE_STANDARD = gnu17;
238+
GCC_NO_COMMON_BLOCKS = YES;
239+
GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
240+
GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
241+
GCC_WARN_UNDECLARED_SELECTOR = YES;
242+
GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
243+
GCC_WARN_UNUSED_FUNCTION = YES;
244+
GCC_WARN_UNUSED_VARIABLE = YES;
245+
IPHONEOS_DEPLOYMENT_TARGET = 18.0;
246+
LOCALIZATION_PREFERS_STRING_CATALOGS = YES;
247+
MTL_ENABLE_DEBUG_INFO = NO;
248+
MTL_FAST_MATH = YES;
249+
SDKROOT = iphoneos;
250+
SWIFT_COMPILATION_MODE = wholemodule;
251+
VALIDATE_PRODUCT = YES;
252+
};
253+
name = Release;
254+
};
255+
4B5794812C4FC3F3000BC6F9 /* Debug */ = {
256+
isa = XCBuildConfiguration;
257+
buildSettings = {
258+
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
259+
ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor;
260+
CODE_SIGN_STYLE = Automatic;
261+
CURRENT_PROJECT_VERSION = 1;
262+
DEVELOPMENT_ASSET_PATHS = "\"Development/Preview Content\"";
263+
DEVELOPMENT_TEAM = JX92XL88RZ;
264+
ENABLE_PREVIEWS = YES;
265+
GENERATE_INFOPLIST_FILE = YES;
266+
INFOPLIST_KEY_UIApplicationSceneManifest_Generation = YES;
267+
INFOPLIST_KEY_UIApplicationSupportsIndirectInputEvents = YES;
268+
INFOPLIST_KEY_UILaunchScreen_Generation = YES;
269+
INFOPLIST_KEY_UISupportedInterfaceOrientations_iPad = "UIInterfaceOrientationPortrait UIInterfaceOrientationPortraitUpsideDown UIInterfaceOrientationLandscapeLeft UIInterfaceOrientationLandscapeRight";
270+
INFOPLIST_KEY_UISupportedInterfaceOrientations_iPhone = "UIInterfaceOrientationPortrait UIInterfaceOrientationLandscapeLeft UIInterfaceOrientationLandscapeRight";
271+
LD_RUNPATH_SEARCH_PATHS = (
272+
"$(inherited)",
273+
"@executable_path/Frameworks",
274+
);
275+
MARKETING_VERSION = 1.0;
276+
PRODUCT_BUNDLE_IDENTIFIER = app.muukii.Development;
277+
PRODUCT_NAME = "$(TARGET_NAME)";
278+
SWIFT_EMIT_LOC_STRINGS = YES;
279+
SWIFT_VERSION = 5.0;
280+
TARGETED_DEVICE_FAMILY = "1,2";
281+
};
282+
name = Debug;
283+
};
284+
4B5794822C4FC3F3000BC6F9 /* Release */ = {
285+
isa = XCBuildConfiguration;
286+
buildSettings = {
287+
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
288+
ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor;
289+
CODE_SIGN_STYLE = Automatic;
290+
CURRENT_PROJECT_VERSION = 1;
291+
DEVELOPMENT_ASSET_PATHS = "\"Development/Preview Content\"";
292+
DEVELOPMENT_TEAM = JX92XL88RZ;
293+
ENABLE_PREVIEWS = YES;
294+
GENERATE_INFOPLIST_FILE = YES;
295+
INFOPLIST_KEY_UIApplicationSceneManifest_Generation = YES;
296+
INFOPLIST_KEY_UIApplicationSupportsIndirectInputEvents = YES;
297+
INFOPLIST_KEY_UILaunchScreen_Generation = YES;
298+
INFOPLIST_KEY_UISupportedInterfaceOrientations_iPad = "UIInterfaceOrientationPortrait UIInterfaceOrientationPortraitUpsideDown UIInterfaceOrientationLandscapeLeft UIInterfaceOrientationLandscapeRight";
299+
INFOPLIST_KEY_UISupportedInterfaceOrientations_iPhone = "UIInterfaceOrientationPortrait UIInterfaceOrientationLandscapeLeft UIInterfaceOrientationLandscapeRight";
300+
LD_RUNPATH_SEARCH_PATHS = (
301+
"$(inherited)",
302+
"@executable_path/Frameworks",
303+
);
304+
MARKETING_VERSION = 1.0;
305+
PRODUCT_BUNDLE_IDENTIFIER = app.muukii.Development;
306+
PRODUCT_NAME = "$(TARGET_NAME)";
307+
SWIFT_EMIT_LOC_STRINGS = YES;
308+
SWIFT_VERSION = 5.0;
309+
TARGETED_DEVICE_FAMILY = "1,2";
310+
};
311+
name = Release;
312+
};
313+
/* End XCBuildConfiguration section */
314+
315+
/* Begin XCConfigurationList section */
316+
4B57946D2C4FC3F2000BC6F9 /* Build configuration list for PBXProject "Development" */ = {
317+
isa = XCConfigurationList;
318+
buildConfigurations = (
319+
4B57947E2C4FC3F3000BC6F9 /* Debug */,
320+
4B57947F2C4FC3F3000BC6F9 /* Release */,
321+
);
322+
defaultConfigurationIsVisible = 0;
323+
defaultConfigurationName = Release;
324+
};
325+
4B5794802C4FC3F3000BC6F9 /* Build configuration list for PBXNativeTarget "Development" */ = {
326+
isa = XCConfigurationList;
327+
buildConfigurations = (
328+
4B5794812C4FC3F3000BC6F9 /* Debug */,
329+
4B5794822C4FC3F3000BC6F9 /* Release */,
330+
);
331+
defaultConfigurationIsVisible = 0;
332+
defaultConfigurationName = Release;
333+
};
334+
/* End XCConfigurationList section */
335+
336+
/* Begin XCLocalSwiftPackageReference section */
337+
4B5794832C4FC44B000BC6F9 /* XCLocalSwiftPackageReference "../../swiftui-snap-dragging-modifier" */ = {
338+
isa = XCLocalSwiftPackageReference;
339+
relativePath = "../../swiftui-snap-dragging-modifier";
340+
};
341+
4BCD74E22C51692C00073BFD /* XCLocalSwiftPackageReference "../submodules/swiftui-scrollview-interoperable-drag-gesture" */ = {
342+
isa = XCLocalSwiftPackageReference;
343+
relativePath = "../submodules/swiftui-scrollview-interoperable-drag-gesture";
344+
};
345+
/* End XCLocalSwiftPackageReference section */
346+
347+
/* Begin XCSwiftPackageProductDependency section */
348+
4B5794842C4FC44B000BC6F9 /* SwiftUISnapDraggingModifier */ = {
349+
isa = XCSwiftPackageProductDependency;
350+
productName = SwiftUISnapDraggingModifier;
351+
};
352+
4BCD74E32C51692C00073BFD /* SwiftUIScrollViewInteroperableDragGesture */ = {
353+
isa = XCSwiftPackageProductDependency;
354+
productName = SwiftUIScrollViewInteroperableDragGesture;
355+
};
356+
/* End XCSwiftPackageProductDependency section */
357+
};
358+
rootObject = 4B57946A2C4FC3F2000BC6F9 /* Project object */;
359+
}

Development/Development.xcodeproj/project.xcworkspace/contents.xcworkspacedata

Lines changed: 7 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)