diff --git a/LNZTreeView.gif b/LNZTreeView.gif deleted file mode 100644 index abc711a..0000000 Binary files a/LNZTreeView.gif and /dev/null differ diff --git a/LNZTreeView.podspec b/LNZTreeView.podspec deleted file mode 100644 index 06fd835..0000000 --- a/LNZTreeView.podspec +++ /dev/null @@ -1,28 +0,0 @@ -Pod::Spec.new do |s| - - s.platform = :ios - s.version = "1.1.2" - s.ios.deployment_target = '8.0' - s.name = "LNZTreeView" - s.summary = "A swift TreeView implementation for iOS." - - s.description = <<-DESC - This is a swift implementation for iOS of a Tree View. A Tree View is a graphical representation of a tree. Each element (node) can have a number of sub elements (children). - - This particular implementation of TreeView organizes nodes and subnodes in rows and each node has an indentation that indicates the hierarchy of the element. A parent can be expanded or collapsed and each children can be a parent itself containing more sub nodes. - DESC - - s.requires_arc = true - - s.license = { :type => "MIT" } - s.homepage = "https://www.pfrpg.net" - s.author = { "Giuseppe Lanza" => "gringoire986@gmail.com" } - s.source = { - :git => "https://github.com/gringoireDM/LNZTreeView.git", - :tag => "v1.1.2" - } - - s.framework = "UIKit" - - s.source_files = "LNZTreeView/**/*.{swift, h}" -end \ No newline at end of file diff --git a/LNZTreeView/Info.plist b/LNZTreeView/Info.plist deleted file mode 100644 index 0202029..0000000 --- a/LNZTreeView/Info.plist +++ /dev/null @@ -1,24 +0,0 @@ - - - - - CFBundleDevelopmentRegion - $(DEVELOPMENT_LANGUAGE) - CFBundleExecutable - $(EXECUTABLE_NAME) - CFBundleIdentifier - $(PRODUCT_BUNDLE_IDENTIFIER) - CFBundleInfoDictionaryVersion - 6.0 - CFBundleName - $(PRODUCT_NAME) - CFBundlePackageType - FMWK - CFBundleShortVersionString - 1.1.2 - CFBundleVersion - $(CURRENT_PROJECT_VERSION) - NSPrincipalClass - - - diff --git a/LNZTreeViewDemo.xcodeproj/project.pbxproj b/LNZTreeViewDemo.xcodeproj/project.pbxproj deleted file mode 100644 index 7f761bb..0000000 --- a/LNZTreeViewDemo.xcodeproj/project.pbxproj +++ /dev/null @@ -1,668 +0,0 @@ -// !$*UTF8*$! -{ - archiveVersion = 1; - classes = { - }; - objectVersion = 48; - objects = { - -/* Begin PBXBuildFile section */ - 50D0A4131FB2215300DE8E02 /* AppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 50D0A4121FB2215300DE8E02 /* AppDelegate.swift */; }; - 50D0A4151FB2215300DE8E02 /* ViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 50D0A4141FB2215300DE8E02 /* ViewController.swift */; }; - 50D0A4181FB2215300DE8E02 /* Main.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 50D0A4161FB2215300DE8E02 /* Main.storyboard */; }; - 50D0A41A1FB2215300DE8E02 /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 50D0A4191FB2215300DE8E02 /* Assets.xcassets */; }; - 50D0A41D1FB2215300DE8E02 /* LaunchScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 50D0A41B1FB2215300DE8E02 /* LaunchScreen.storyboard */; }; - 50D0A44B1FB22ABF00DE8E02 /* LNZTreeView.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 50D0A4421FB22ABF00DE8E02 /* LNZTreeView.framework */; }; - 50D0A4541FB22ABF00DE8E02 /* LNZTreeView.h in Headers */ = {isa = PBXBuildFile; fileRef = 50D0A4441FB22ABF00DE8E02 /* LNZTreeView.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 50D0A4571FB22ABF00DE8E02 /* LNZTreeView.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 50D0A4421FB22ABF00DE8E02 /* LNZTreeView.framework */; }; - 50D0A4581FB22ABF00DE8E02 /* LNZTreeView.framework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 50D0A4421FB22ABF00DE8E02 /* LNZTreeView.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; - 50D0A4601FB22ACF00DE8E02 /* LNZTreeViewDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 50D0A4341FB2217D00DE8E02 /* LNZTreeViewDelegate.swift */; }; - 50D0A4611FB22ACF00DE8E02 /* LNZTreeView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 50D0A4351FB2217D00DE8E02 /* LNZTreeView.swift */; }; - 50D0A4621FB22ACF00DE8E02 /* LNZTreeViewDataSource.swift in Sources */ = {isa = PBXBuildFile; fileRef = 50D0A4331FB2217D00DE8E02 /* LNZTreeViewDataSource.swift */; }; - 50D0A4651FB22B2800DE8E02 /* LNZTreeViewTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 50D0A4641FB22B2200DE8E02 /* LNZTreeViewTests.swift */; }; - 50D0A4661FB22B3300DE8E02 /* TreeViewMockDataSource.swift in Sources */ = {isa = PBXBuildFile; fileRef = 50D0A4381FB22A6300DE8E02 /* TreeViewMockDataSource.swift */; }; - 50D0A4671FB22B3300DE8E02 /* TestNode.swift in Sources */ = {isa = PBXBuildFile; fileRef = 50D0A4391FB22A6300DE8E02 /* TestNode.swift */; }; - 50D0A4681FB22B3300DE8E02 /* TreeViewMockDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 50D0A43A1FB22A6300DE8E02 /* TreeViewMockDelegate.swift */; }; -/* End PBXBuildFile section */ - -/* Begin PBXContainerItemProxy section */ - 50D0A44C1FB22ABF00DE8E02 /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = 50D0A4071FB2215300DE8E02 /* Project object */; - proxyType = 1; - remoteGlobalIDString = 50D0A4411FB22ABF00DE8E02; - remoteInfo = LNZTreeView; - }; - 50D0A44E1FB22ABF00DE8E02 /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = 50D0A4071FB2215300DE8E02 /* Project object */; - proxyType = 1; - remoteGlobalIDString = 50D0A40E1FB2215300DE8E02; - remoteInfo = LNZTreeViewDemo; - }; - 50D0A4551FB22ABF00DE8E02 /* PBXContainerItemProxy */ = { - isa = PBXContainerItemProxy; - containerPortal = 50D0A4071FB2215300DE8E02 /* Project object */; - proxyType = 1; - remoteGlobalIDString = 50D0A4411FB22ABF00DE8E02; - remoteInfo = LNZTreeView; - }; -/* End PBXContainerItemProxy section */ - -/* Begin PBXCopyFilesBuildPhase section */ - 50D0A45C1FB22ABF00DE8E02 /* Embed Frameworks */ = { - isa = PBXCopyFilesBuildPhase; - buildActionMask = 2147483647; - dstPath = ""; - dstSubfolderSpec = 10; - files = ( - 50D0A4581FB22ABF00DE8E02 /* LNZTreeView.framework in Embed Frameworks */, - ); - name = "Embed Frameworks"; - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXCopyFilesBuildPhase section */ - -/* Begin PBXFileReference section */ - 50D0A40F1FB2215300DE8E02 /* LNZTreeViewDemo.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = LNZTreeViewDemo.app; sourceTree = BUILT_PRODUCTS_DIR; }; - 50D0A4121FB2215300DE8E02 /* AppDelegate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppDelegate.swift; sourceTree = ""; }; - 50D0A4141FB2215300DE8E02 /* ViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ViewController.swift; sourceTree = ""; }; - 50D0A4171FB2215300DE8E02 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/Main.storyboard; sourceTree = ""; }; - 50D0A4191FB2215300DE8E02 /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = ""; }; - 50D0A41C1FB2215300DE8E02 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/LaunchScreen.storyboard; sourceTree = ""; }; - 50D0A41E1FB2215300DE8E02 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; - 50D0A4331FB2217D00DE8E02 /* LNZTreeViewDataSource.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LNZTreeViewDataSource.swift; sourceTree = ""; }; - 50D0A4341FB2217D00DE8E02 /* LNZTreeViewDelegate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LNZTreeViewDelegate.swift; sourceTree = ""; }; - 50D0A4351FB2217D00DE8E02 /* LNZTreeView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LNZTreeView.swift; sourceTree = ""; }; - 50D0A4381FB22A6300DE8E02 /* TreeViewMockDataSource.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TreeViewMockDataSource.swift; sourceTree = ""; }; - 50D0A4391FB22A6300DE8E02 /* TestNode.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TestNode.swift; sourceTree = ""; }; - 50D0A43A1FB22A6300DE8E02 /* TreeViewMockDelegate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TreeViewMockDelegate.swift; sourceTree = ""; }; - 50D0A4421FB22ABF00DE8E02 /* LNZTreeView.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = LNZTreeView.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - 50D0A4441FB22ABF00DE8E02 /* LNZTreeView.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = LNZTreeView.h; sourceTree = ""; }; - 50D0A4451FB22ABF00DE8E02 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; - 50D0A44A1FB22ABF00DE8E02 /* LNZTreeViewTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = LNZTreeViewTests.xctest; sourceTree = BUILT_PRODUCTS_DIR; }; - 50D0A4531FB22ABF00DE8E02 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; - 50D0A4641FB22B2200DE8E02 /* LNZTreeViewTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LNZTreeViewTests.swift; sourceTree = ""; }; -/* End PBXFileReference section */ - -/* Begin PBXFrameworksBuildPhase section */ - 50D0A40C1FB2215300DE8E02 /* Frameworks */ = { - isa = PBXFrameworksBuildPhase; - buildActionMask = 2147483647; - files = ( - 50D0A4571FB22ABF00DE8E02 /* LNZTreeView.framework in Frameworks */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - 50D0A43E1FB22ABF00DE8E02 /* Frameworks */ = { - isa = PBXFrameworksBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - runOnlyForDeploymentPostprocessing = 0; - }; - 50D0A4471FB22ABF00DE8E02 /* Frameworks */ = { - isa = PBXFrameworksBuildPhase; - buildActionMask = 2147483647; - files = ( - 50D0A44B1FB22ABF00DE8E02 /* LNZTreeView.framework in Frameworks */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXFrameworksBuildPhase section */ - -/* Begin PBXGroup section */ - 50D0A4061FB2215200DE8E02 = { - isa = PBXGroup; - children = ( - 50D0A4111FB2215300DE8E02 /* LNZTreeViewDemo */, - 50D0A4431FB22ABF00DE8E02 /* LNZTreeView */, - 50D0A4501FB22ABF00DE8E02 /* LNZTreeViewTests */, - 50D0A4101FB2215300DE8E02 /* Products */, - ); - sourceTree = ""; - }; - 50D0A4101FB2215300DE8E02 /* Products */ = { - isa = PBXGroup; - children = ( - 50D0A40F1FB2215300DE8E02 /* LNZTreeViewDemo.app */, - 50D0A4421FB22ABF00DE8E02 /* LNZTreeView.framework */, - 50D0A44A1FB22ABF00DE8E02 /* LNZTreeViewTests.xctest */, - ); - name = Products; - sourceTree = ""; - }; - 50D0A4111FB2215300DE8E02 /* LNZTreeViewDemo */ = { - isa = PBXGroup; - children = ( - 50D0A4121FB2215300DE8E02 /* AppDelegate.swift */, - 50D0A4141FB2215300DE8E02 /* ViewController.swift */, - 50D0A4161FB2215300DE8E02 /* Main.storyboard */, - 50D0A4191FB2215300DE8E02 /* Assets.xcassets */, - 50D0A41B1FB2215300DE8E02 /* LaunchScreen.storyboard */, - 50D0A41E1FB2215300DE8E02 /* Info.plist */, - ); - path = LNZTreeViewDemo; - sourceTree = ""; - }; - 50D0A4371FB22A6300DE8E02 /* MockObjects */ = { - isa = PBXGroup; - children = ( - 50D0A4381FB22A6300DE8E02 /* TreeViewMockDataSource.swift */, - 50D0A4391FB22A6300DE8E02 /* TestNode.swift */, - 50D0A43A1FB22A6300DE8E02 /* TreeViewMockDelegate.swift */, - ); - path = MockObjects; - sourceTree = ""; - }; - 50D0A4431FB22ABF00DE8E02 /* LNZTreeView */ = { - isa = PBXGroup; - children = ( - 50D0A4331FB2217D00DE8E02 /* LNZTreeViewDataSource.swift */, - 50D0A4341FB2217D00DE8E02 /* LNZTreeViewDelegate.swift */, - 50D0A4351FB2217D00DE8E02 /* LNZTreeView.swift */, - 50D0A4441FB22ABF00DE8E02 /* LNZTreeView.h */, - 50D0A4451FB22ABF00DE8E02 /* Info.plist */, - ); - path = LNZTreeView; - sourceTree = ""; - }; - 50D0A4501FB22ABF00DE8E02 /* LNZTreeViewTests */ = { - isa = PBXGroup; - children = ( - 50D0A4371FB22A6300DE8E02 /* MockObjects */, - 50D0A4641FB22B2200DE8E02 /* LNZTreeViewTests.swift */, - 50D0A4531FB22ABF00DE8E02 /* Info.plist */, - ); - path = LNZTreeViewTests; - sourceTree = ""; - }; -/* End PBXGroup section */ - -/* Begin PBXHeadersBuildPhase section */ - 50D0A43F1FB22ABF00DE8E02 /* Headers */ = { - isa = PBXHeadersBuildPhase; - buildActionMask = 2147483647; - files = ( - 50D0A4541FB22ABF00DE8E02 /* LNZTreeView.h in Headers */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXHeadersBuildPhase section */ - -/* Begin PBXNativeTarget section */ - 50D0A40E1FB2215300DE8E02 /* LNZTreeViewDemo */ = { - isa = PBXNativeTarget; - buildConfigurationList = 50D0A42C1FB2215300DE8E02 /* Build configuration list for PBXNativeTarget "LNZTreeViewDemo" */; - buildPhases = ( - 50D0A40B1FB2215300DE8E02 /* Sources */, - 50D0A40C1FB2215300DE8E02 /* Frameworks */, - 50D0A40D1FB2215300DE8E02 /* Resources */, - 50D0A45C1FB22ABF00DE8E02 /* Embed Frameworks */, - ); - buildRules = ( - ); - dependencies = ( - 50D0A4561FB22ABF00DE8E02 /* PBXTargetDependency */, - ); - name = LNZTreeViewDemo; - productName = LNZTreeViewDemo; - productReference = 50D0A40F1FB2215300DE8E02 /* LNZTreeViewDemo.app */; - productType = "com.apple.product-type.application"; - }; - 50D0A4411FB22ABF00DE8E02 /* LNZTreeView */ = { - isa = PBXNativeTarget; - buildConfigurationList = 50D0A4591FB22ABF00DE8E02 /* Build configuration list for PBXNativeTarget "LNZTreeView" */; - buildPhases = ( - 50D0A43D1FB22ABF00DE8E02 /* Sources */, - 50D0A43E1FB22ABF00DE8E02 /* Frameworks */, - 50D0A43F1FB22ABF00DE8E02 /* Headers */, - 50D0A4401FB22ABF00DE8E02 /* Resources */, - ); - buildRules = ( - ); - dependencies = ( - ); - name = LNZTreeView; - productName = LNZTreeView; - productReference = 50D0A4421FB22ABF00DE8E02 /* LNZTreeView.framework */; - productType = "com.apple.product-type.framework"; - }; - 50D0A4491FB22ABF00DE8E02 /* LNZTreeViewTests */ = { - isa = PBXNativeTarget; - buildConfigurationList = 50D0A45D1FB22ABF00DE8E02 /* Build configuration list for PBXNativeTarget "LNZTreeViewTests" */; - buildPhases = ( - 50D0A4461FB22ABF00DE8E02 /* Sources */, - 50D0A4471FB22ABF00DE8E02 /* Frameworks */, - 50D0A4481FB22ABF00DE8E02 /* Resources */, - ); - buildRules = ( - ); - dependencies = ( - 50D0A44D1FB22ABF00DE8E02 /* PBXTargetDependency */, - 50D0A44F1FB22ABF00DE8E02 /* PBXTargetDependency */, - ); - name = LNZTreeViewTests; - productName = LNZTreeViewTests; - productReference = 50D0A44A1FB22ABF00DE8E02 /* LNZTreeViewTests.xctest */; - productType = "com.apple.product-type.bundle.unit-test"; - }; -/* End PBXNativeTarget section */ - -/* Begin PBXProject section */ - 50D0A4071FB2215300DE8E02 /* Project object */ = { - isa = PBXProject; - attributes = { - LastSwiftUpdateCheck = 0900; - LastUpgradeCheck = 1000; - ORGANIZATIONNAME = "Giuseppe Lanza"; - TargetAttributes = { - 50D0A40E1FB2215300DE8E02 = { - CreatedOnToolsVersion = 9.0; - LastSwiftMigration = 1000; - ProvisioningStyle = Automatic; - }; - 50D0A4411FB22ABF00DE8E02 = { - CreatedOnToolsVersion = 9.0; - LastSwiftMigration = 1000; - ProvisioningStyle = Automatic; - }; - 50D0A4491FB22ABF00DE8E02 = { - CreatedOnToolsVersion = 9.0; - LastSwiftMigration = 1000; - ProvisioningStyle = Automatic; - TestTargetID = 50D0A40E1FB2215300DE8E02; - }; - }; - }; - buildConfigurationList = 50D0A40A1FB2215300DE8E02 /* Build configuration list for PBXProject "LNZTreeViewDemo" */; - compatibilityVersion = "Xcode 8.0"; - developmentRegion = en; - hasScannedForEncodings = 0; - knownRegions = ( - en, - Base, - ); - mainGroup = 50D0A4061FB2215200DE8E02; - productRefGroup = 50D0A4101FB2215300DE8E02 /* Products */; - projectDirPath = ""; - projectRoot = ""; - targets = ( - 50D0A40E1FB2215300DE8E02 /* LNZTreeViewDemo */, - 50D0A4411FB22ABF00DE8E02 /* LNZTreeView */, - 50D0A4491FB22ABF00DE8E02 /* LNZTreeViewTests */, - ); - }; -/* End PBXProject section */ - -/* Begin PBXResourcesBuildPhase section */ - 50D0A40D1FB2215300DE8E02 /* Resources */ = { - isa = PBXResourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - 50D0A41D1FB2215300DE8E02 /* LaunchScreen.storyboard in Resources */, - 50D0A41A1FB2215300DE8E02 /* Assets.xcassets in Resources */, - 50D0A4181FB2215300DE8E02 /* Main.storyboard in Resources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - 50D0A4401FB22ABF00DE8E02 /* Resources */ = { - isa = PBXResourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - runOnlyForDeploymentPostprocessing = 0; - }; - 50D0A4481FB22ABF00DE8E02 /* Resources */ = { - isa = PBXResourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXResourcesBuildPhase section */ - -/* Begin PBXSourcesBuildPhase section */ - 50D0A40B1FB2215300DE8E02 /* Sources */ = { - isa = PBXSourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - 50D0A4151FB2215300DE8E02 /* ViewController.swift in Sources */, - 50D0A4131FB2215300DE8E02 /* AppDelegate.swift in Sources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - 50D0A43D1FB22ABF00DE8E02 /* Sources */ = { - isa = PBXSourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - 50D0A4601FB22ACF00DE8E02 /* LNZTreeViewDelegate.swift in Sources */, - 50D0A4621FB22ACF00DE8E02 /* LNZTreeViewDataSource.swift in Sources */, - 50D0A4611FB22ACF00DE8E02 /* LNZTreeView.swift in Sources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; - 50D0A4461FB22ABF00DE8E02 /* Sources */ = { - isa = PBXSourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - 50D0A4671FB22B3300DE8E02 /* TestNode.swift in Sources */, - 50D0A4681FB22B3300DE8E02 /* TreeViewMockDelegate.swift in Sources */, - 50D0A4651FB22B2800DE8E02 /* LNZTreeViewTests.swift in Sources */, - 50D0A4661FB22B3300DE8E02 /* TreeViewMockDataSource.swift in Sources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXSourcesBuildPhase section */ - -/* Begin PBXTargetDependency section */ - 50D0A44D1FB22ABF00DE8E02 /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - target = 50D0A4411FB22ABF00DE8E02 /* LNZTreeView */; - targetProxy = 50D0A44C1FB22ABF00DE8E02 /* PBXContainerItemProxy */; - }; - 50D0A44F1FB22ABF00DE8E02 /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - target = 50D0A40E1FB2215300DE8E02 /* LNZTreeViewDemo */; - targetProxy = 50D0A44E1FB22ABF00DE8E02 /* PBXContainerItemProxy */; - }; - 50D0A4561FB22ABF00DE8E02 /* PBXTargetDependency */ = { - isa = PBXTargetDependency; - target = 50D0A4411FB22ABF00DE8E02 /* LNZTreeView */; - targetProxy = 50D0A4551FB22ABF00DE8E02 /* PBXContainerItemProxy */; - }; -/* End PBXTargetDependency section */ - -/* Begin PBXVariantGroup section */ - 50D0A4161FB2215300DE8E02 /* Main.storyboard */ = { - isa = PBXVariantGroup; - children = ( - 50D0A4171FB2215300DE8E02 /* Base */, - ); - name = Main.storyboard; - sourceTree = ""; - }; - 50D0A41B1FB2215300DE8E02 /* LaunchScreen.storyboard */ = { - isa = PBXVariantGroup; - children = ( - 50D0A41C1FB2215300DE8E02 /* Base */, - ); - name = LaunchScreen.storyboard; - sourceTree = ""; - }; -/* End PBXVariantGroup section */ - -/* Begin XCBuildConfiguration section */ - 50D0A42A1FB2215300DE8E02 /* Debug */ = { - isa = XCBuildConfiguration; - buildSettings = { - ALWAYS_SEARCH_USER_PATHS = NO; - CLANG_ANALYZER_NONNULL = YES; - CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; - CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; - CLANG_CXX_LIBRARY = "libc++"; - CLANG_ENABLE_MODULES = YES; - CLANG_ENABLE_OBJC_ARC = YES; - CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; - CLANG_WARN_BOOL_CONVERSION = YES; - CLANG_WARN_COMMA = YES; - CLANG_WARN_CONSTANT_CONVERSION = YES; - CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; - CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; - CLANG_WARN_DOCUMENTATION_COMMENTS = YES; - CLANG_WARN_EMPTY_BODY = YES; - CLANG_WARN_ENUM_CONVERSION = YES; - CLANG_WARN_INFINITE_RECURSION = YES; - CLANG_WARN_INT_CONVERSION = YES; - CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; - CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; - CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; - CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; - CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; - CLANG_WARN_STRICT_PROTOTYPES = YES; - CLANG_WARN_SUSPICIOUS_MOVE = YES; - CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; - CLANG_WARN_UNREACHABLE_CODE = YES; - CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; - CODE_SIGN_IDENTITY = "iPhone Developer"; - COPY_PHASE_STRIP = NO; - DEBUG_INFORMATION_FORMAT = dwarf; - ENABLE_STRICT_OBJC_MSGSEND = YES; - ENABLE_TESTABILITY = YES; - GCC_C_LANGUAGE_STANDARD = gnu11; - GCC_DYNAMIC_NO_PIC = NO; - GCC_NO_COMMON_BLOCKS = YES; - GCC_OPTIMIZATION_LEVEL = 0; - GCC_PREPROCESSOR_DEFINITIONS = ( - "DEBUG=1", - "$(inherited)", - ); - GCC_WARN_64_TO_32_BIT_CONVERSION = YES; - GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; - GCC_WARN_UNDECLARED_SELECTOR = YES; - GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; - GCC_WARN_UNUSED_FUNCTION = YES; - GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 11.0; - MTL_ENABLE_DEBUG_INFO = YES; - ONLY_ACTIVE_ARCH = YES; - SDKROOT = iphoneos; - SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG; - SWIFT_OPTIMIZATION_LEVEL = "-Onone"; - }; - name = Debug; - }; - 50D0A42B1FB2215300DE8E02 /* Release */ = { - isa = XCBuildConfiguration; - buildSettings = { - ALWAYS_SEARCH_USER_PATHS = NO; - CLANG_ANALYZER_NONNULL = YES; - CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; - CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; - CLANG_CXX_LIBRARY = "libc++"; - CLANG_ENABLE_MODULES = YES; - CLANG_ENABLE_OBJC_ARC = YES; - CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; - CLANG_WARN_BOOL_CONVERSION = YES; - CLANG_WARN_COMMA = YES; - CLANG_WARN_CONSTANT_CONVERSION = YES; - CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; - CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; - CLANG_WARN_DOCUMENTATION_COMMENTS = YES; - CLANG_WARN_EMPTY_BODY = YES; - CLANG_WARN_ENUM_CONVERSION = YES; - CLANG_WARN_INFINITE_RECURSION = YES; - CLANG_WARN_INT_CONVERSION = YES; - CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; - CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; - CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; - CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; - CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; - CLANG_WARN_STRICT_PROTOTYPES = YES; - CLANG_WARN_SUSPICIOUS_MOVE = YES; - CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; - CLANG_WARN_UNREACHABLE_CODE = YES; - CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; - CODE_SIGN_IDENTITY = "iPhone Developer"; - COPY_PHASE_STRIP = NO; - DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; - ENABLE_NS_ASSERTIONS = NO; - ENABLE_STRICT_OBJC_MSGSEND = YES; - GCC_C_LANGUAGE_STANDARD = gnu11; - GCC_NO_COMMON_BLOCKS = YES; - GCC_WARN_64_TO_32_BIT_CONVERSION = YES; - GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; - GCC_WARN_UNDECLARED_SELECTOR = YES; - GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; - GCC_WARN_UNUSED_FUNCTION = YES; - GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 11.0; - MTL_ENABLE_DEBUG_INFO = NO; - SDKROOT = iphoneos; - SWIFT_OPTIMIZATION_LEVEL = "-Owholemodule"; - VALIDATE_PRODUCT = YES; - }; - name = Release; - }; - 50D0A42D1FB2215300DE8E02 /* Debug */ = { - isa = XCBuildConfiguration; - buildSettings = { - ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES; - ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; - CODE_SIGN_STYLE = Automatic; - DEVELOPMENT_TEAM = ZJ8CN8P2Z5; - INFOPLIST_FILE = LNZTreeViewDemo/Info.plist; - IPHONEOS_DEPLOYMENT_TARGET = 9.0; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; - PRODUCT_BUNDLE_IDENTIFIER = net.pfrpg.LNZTreeViewDemo; - PRODUCT_NAME = "$(TARGET_NAME)"; - SWIFT_VERSION = 4.2; - TARGETED_DEVICE_FAMILY = "1,2"; - }; - name = Debug; - }; - 50D0A42E1FB2215300DE8E02 /* Release */ = { - isa = XCBuildConfiguration; - buildSettings = { - ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES; - ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; - CODE_SIGN_STYLE = Automatic; - DEVELOPMENT_TEAM = ZJ8CN8P2Z5; - INFOPLIST_FILE = LNZTreeViewDemo/Info.plist; - IPHONEOS_DEPLOYMENT_TARGET = 9.0; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; - PRODUCT_BUNDLE_IDENTIFIER = net.pfrpg.LNZTreeViewDemo; - PRODUCT_NAME = "$(TARGET_NAME)"; - SWIFT_VERSION = 4.2; - TARGETED_DEVICE_FAMILY = "1,2"; - }; - name = Release; - }; - 50D0A45A1FB22ABF00DE8E02 /* Debug */ = { - isa = XCBuildConfiguration; - buildSettings = { - CODE_SIGN_IDENTITY = ""; - CODE_SIGN_STYLE = Automatic; - CURRENT_PROJECT_VERSION = 1; - DEFINES_MODULE = YES; - DEVELOPMENT_TEAM = ZJ8CN8P2Z5; - DYLIB_COMPATIBILITY_VERSION = 1; - DYLIB_CURRENT_VERSION = 1; - DYLIB_INSTALL_NAME_BASE = "@rpath"; - INFOPLIST_FILE = LNZTreeView/Info.plist; - INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; - IPHONEOS_DEPLOYMENT_TARGET = 8.0; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; - PRODUCT_BUNDLE_IDENTIFIER = net.pfrpg.LNZTreeView; - PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)"; - SKIP_INSTALL = YES; - SWIFT_VERSION = 4.2; - TARGETED_DEVICE_FAMILY = "1,2"; - VERSIONING_SYSTEM = "apple-generic"; - VERSION_INFO_PREFIX = ""; - }; - name = Debug; - }; - 50D0A45B1FB22ABF00DE8E02 /* Release */ = { - isa = XCBuildConfiguration; - buildSettings = { - CODE_SIGN_IDENTITY = ""; - CODE_SIGN_STYLE = Automatic; - CURRENT_PROJECT_VERSION = 1; - DEFINES_MODULE = YES; - DEVELOPMENT_TEAM = ZJ8CN8P2Z5; - DYLIB_COMPATIBILITY_VERSION = 1; - DYLIB_CURRENT_VERSION = 1; - DYLIB_INSTALL_NAME_BASE = "@rpath"; - INFOPLIST_FILE = LNZTreeView/Info.plist; - INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; - IPHONEOS_DEPLOYMENT_TARGET = 8.0; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; - PRODUCT_BUNDLE_IDENTIFIER = net.pfrpg.LNZTreeView; - PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)"; - SKIP_INSTALL = YES; - SWIFT_VERSION = 4.2; - TARGETED_DEVICE_FAMILY = "1,2"; - VERSIONING_SYSTEM = "apple-generic"; - VERSION_INFO_PREFIX = ""; - }; - name = Release; - }; - 50D0A45E1FB22ABF00DE8E02 /* Debug */ = { - isa = XCBuildConfiguration; - buildSettings = { - ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES; - CLANG_ENABLE_MODULES = YES; - CODE_SIGN_STYLE = Automatic; - DEVELOPMENT_TEAM = ZJ8CN8P2Z5; - INFOPLIST_FILE = LNZTreeViewTests/Info.plist; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; - PRODUCT_BUNDLE_IDENTIFIER = net.pfrpg.LNZTreeViewTests; - PRODUCT_NAME = "$(TARGET_NAME)"; - SWIFT_OPTIMIZATION_LEVEL = "-Onone"; - SWIFT_VERSION = 4.2; - TARGETED_DEVICE_FAMILY = "1,2"; - TEST_HOST = "$(BUILT_PRODUCTS_DIR)/LNZTreeViewDemo.app/LNZTreeViewDemo"; - }; - name = Debug; - }; - 50D0A45F1FB22ABF00DE8E02 /* Release */ = { - isa = XCBuildConfiguration; - buildSettings = { - ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES; - CLANG_ENABLE_MODULES = YES; - CODE_SIGN_STYLE = Automatic; - DEVELOPMENT_TEAM = ZJ8CN8P2Z5; - INFOPLIST_FILE = LNZTreeViewTests/Info.plist; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; - PRODUCT_BUNDLE_IDENTIFIER = net.pfrpg.LNZTreeViewTests; - PRODUCT_NAME = "$(TARGET_NAME)"; - SWIFT_VERSION = 4.2; - TARGETED_DEVICE_FAMILY = "1,2"; - TEST_HOST = "$(BUILT_PRODUCTS_DIR)/LNZTreeViewDemo.app/LNZTreeViewDemo"; - }; - name = Release; - }; -/* End XCBuildConfiguration section */ - -/* Begin XCConfigurationList section */ - 50D0A40A1FB2215300DE8E02 /* Build configuration list for PBXProject "LNZTreeViewDemo" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - 50D0A42A1FB2215300DE8E02 /* Debug */, - 50D0A42B1FB2215300DE8E02 /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; - 50D0A42C1FB2215300DE8E02 /* Build configuration list for PBXNativeTarget "LNZTreeViewDemo" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - 50D0A42D1FB2215300DE8E02 /* Debug */, - 50D0A42E1FB2215300DE8E02 /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; - 50D0A4591FB22ABF00DE8E02 /* Build configuration list for PBXNativeTarget "LNZTreeView" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - 50D0A45A1FB22ABF00DE8E02 /* Debug */, - 50D0A45B1FB22ABF00DE8E02 /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; - 50D0A45D1FB22ABF00DE8E02 /* Build configuration list for PBXNativeTarget "LNZTreeViewTests" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - 50D0A45E1FB22ABF00DE8E02 /* Debug */, - 50D0A45F1FB22ABF00DE8E02 /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; -/* End XCConfigurationList section */ - }; - rootObject = 50D0A4071FB2215300DE8E02 /* Project object */; -} diff --git a/LNZTreeViewDemo.xcodeproj/project.xcworkspace/contents.xcworkspacedata b/LNZTreeViewDemo.xcodeproj/project.xcworkspace/contents.xcworkspacedata deleted file mode 100644 index 5a1d113..0000000 --- a/LNZTreeViewDemo.xcodeproj/project.xcworkspace/contents.xcworkspacedata +++ /dev/null @@ -1,7 +0,0 @@ - - - - - diff --git a/LNZTreeViewDemo.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist b/LNZTreeViewDemo.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist deleted file mode 100644 index 18d9810..0000000 --- a/LNZTreeViewDemo.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist +++ /dev/null @@ -1,8 +0,0 @@ - - - - - IDEDidComputeMac32BitWarning - - - diff --git a/LNZTreeViewDemo.xcodeproj/project.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings b/LNZTreeViewDemo.xcodeproj/project.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings deleted file mode 100644 index 0c67376..0000000 --- a/LNZTreeViewDemo.xcodeproj/project.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings +++ /dev/null @@ -1,5 +0,0 @@ - - - - - diff --git a/LNZTreeViewDemo.xcodeproj/xcshareddata/xcschemes/LNZTreeView.xcscheme b/LNZTreeViewDemo.xcodeproj/xcshareddata/xcschemes/LNZTreeView.xcscheme deleted file mode 100644 index d1de64d..0000000 --- a/LNZTreeViewDemo.xcodeproj/xcshareddata/xcschemes/LNZTreeView.xcscheme +++ /dev/null @@ -1,101 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/LNZTreeViewDemo.xcodeproj/xcuserdata/giuseppelanza.xcuserdatad/xcschemes/xcschememanagement.plist b/LNZTreeViewDemo.xcodeproj/xcuserdata/giuseppelanza.xcuserdatad/xcschemes/xcschememanagement.plist deleted file mode 100644 index 1a4d8f2..0000000 --- a/LNZTreeViewDemo.xcodeproj/xcuserdata/giuseppelanza.xcuserdatad/xcschemes/xcschememanagement.plist +++ /dev/null @@ -1,37 +0,0 @@ - - - - - SchemeUserState - - LNZTreeView.xcscheme_^#shared#^_ - - orderHint - 1 - - LNZTreeViewDemo.xcscheme - - orderHint - 0 - - - SuppressBuildableAutocreation - - 50D0A40E1FB2215300DE8E02 - - primary - - - 50D0A4411FB22ABF00DE8E02 - - primary - - - 50D0A4491FB22ABF00DE8E02 - - primary - - - - - diff --git a/LNZTreeViewDemo/AppDelegate.swift b/LNZTreeViewDemo/AppDelegate.swift deleted file mode 100644 index 8118899..0000000 --- a/LNZTreeViewDemo/AppDelegate.swift +++ /dev/null @@ -1,46 +0,0 @@ -// -// AppDelegate.swift -// LNZTreeViewDemo -// -// Created by Giuseppe Lanza on 07/11/2017. -// Copyright © 2017 Giuseppe Lanza. All rights reserved. -// - -import UIKit - - -@UIApplicationMain -class AppDelegate: UIResponder, UIApplicationDelegate { - - var window: UIWindow? - - func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool { - // Override point for customization after application launch. - return true - } - - func applicationWillResignActive(_ application: UIApplication) { - // Sent when the application is about to move from active to inactive state. This can occur for certain types of temporary interruptions (such as an incoming phone call or SMS message) or when the user quits the application and it begins the transition to the background state. - // Use this method to pause ongoing tasks, disable timers, and invalidate graphics rendering callbacks. Games should use this method to pause the game. - } - - func applicationDidEnterBackground(_ application: UIApplication) { - // Use this method to release shared resources, save user data, invalidate timers, and store enough application state information to restore your application to its current state in case it is terminated later. - // If your application supports background execution, this method is called instead of applicationWillTerminate: when the user quits. - } - - func applicationWillEnterForeground(_ application: UIApplication) { - // Called as part of the transition from the background to the active state; here you can undo many of the changes made on entering the background. - } - - func applicationDidBecomeActive(_ application: UIApplication) { - // Restart any tasks that were paused (or not yet started) while the application was inactive. If the application was previously in the background, optionally refresh the user interface. - } - - func applicationWillTerminate(_ application: UIApplication) { - // Called when the application is about to terminate. Save data if appropriate. See also applicationDidEnterBackground:. - } - - -} - diff --git a/LNZTreeViewDemo/Assets.xcassets/AppIcon.appiconset/Contents.json b/LNZTreeViewDemo/Assets.xcassets/AppIcon.appiconset/Contents.json deleted file mode 100644 index d8db8d6..0000000 --- a/LNZTreeViewDemo/Assets.xcassets/AppIcon.appiconset/Contents.json +++ /dev/null @@ -1,98 +0,0 @@ -{ - "images" : [ - { - "idiom" : "iphone", - "size" : "20x20", - "scale" : "2x" - }, - { - "idiom" : "iphone", - "size" : "20x20", - "scale" : "3x" - }, - { - "idiom" : "iphone", - "size" : "29x29", - "scale" : "2x" - }, - { - "idiom" : "iphone", - "size" : "29x29", - "scale" : "3x" - }, - { - "idiom" : "iphone", - "size" : "40x40", - "scale" : "2x" - }, - { - "idiom" : "iphone", - "size" : "40x40", - "scale" : "3x" - }, - { - "idiom" : "iphone", - "size" : "60x60", - "scale" : "2x" - }, - { - "idiom" : "iphone", - "size" : "60x60", - "scale" : "3x" - }, - { - "idiom" : "ipad", - "size" : "20x20", - "scale" : "1x" - }, - { - "idiom" : "ipad", - "size" : "20x20", - "scale" : "2x" - }, - { - "idiom" : "ipad", - "size" : "29x29", - "scale" : "1x" - }, - { - "idiom" : "ipad", - "size" : "29x29", - "scale" : "2x" - }, - { - "idiom" : "ipad", - "size" : "40x40", - "scale" : "1x" - }, - { - "idiom" : "ipad", - "size" : "40x40", - "scale" : "2x" - }, - { - "idiom" : "ipad", - "size" : "76x76", - "scale" : "1x" - }, - { - "idiom" : "ipad", - "size" : "76x76", - "scale" : "2x" - }, - { - "idiom" : "ipad", - "size" : "83.5x83.5", - "scale" : "2x" - }, - { - "idiom" : "ios-marketing", - "size" : "1024x1024", - "scale" : "1x" - } - ], - "info" : { - "version" : 1, - "author" : "xcode" - } -} \ No newline at end of file diff --git a/LNZTreeViewDemo/Assets.xcassets/Contents.json b/LNZTreeViewDemo/Assets.xcassets/Contents.json deleted file mode 100644 index da4a164..0000000 --- a/LNZTreeViewDemo/Assets.xcassets/Contents.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "info" : { - "version" : 1, - "author" : "xcode" - } -} \ No newline at end of file diff --git a/LNZTreeViewDemo/Assets.xcassets/index_folder_indicator.imageset/Contents.json b/LNZTreeViewDemo/Assets.xcassets/index_folder_indicator.imageset/Contents.json deleted file mode 100644 index dafc185..0000000 --- a/LNZTreeViewDemo/Assets.xcassets/index_folder_indicator.imageset/Contents.json +++ /dev/null @@ -1,12 +0,0 @@ -{ - "images" : [ - { - "idiom" : "universal", - "filename" : "index_folder_indicator.pdf" - } - ], - "info" : { - "version" : 1, - "author" : "xcode" - } -} \ No newline at end of file diff --git a/LNZTreeViewDemo/Assets.xcassets/index_folder_indicator.imageset/index_folder_indicator.pdf b/LNZTreeViewDemo/Assets.xcassets/index_folder_indicator.imageset/index_folder_indicator.pdf deleted file mode 100644 index c077add..0000000 Binary files a/LNZTreeViewDemo/Assets.xcassets/index_folder_indicator.imageset/index_folder_indicator.pdf and /dev/null differ diff --git a/LNZTreeViewDemo/Assets.xcassets/index_folder_indicator_open.imageset/Contents.json b/LNZTreeViewDemo/Assets.xcassets/index_folder_indicator_open.imageset/Contents.json deleted file mode 100644 index 908fe98..0000000 --- a/LNZTreeViewDemo/Assets.xcassets/index_folder_indicator_open.imageset/Contents.json +++ /dev/null @@ -1,12 +0,0 @@ -{ - "images" : [ - { - "idiom" : "universal", - "filename" : "index_folder_indicator_open.pdf" - } - ], - "info" : { - "version" : 1, - "author" : "xcode" - } -} \ No newline at end of file diff --git a/LNZTreeViewDemo/Assets.xcassets/index_folder_indicator_open.imageset/index_folder_indicator_open.pdf b/LNZTreeViewDemo/Assets.xcassets/index_folder_indicator_open.imageset/index_folder_indicator_open.pdf deleted file mode 100644 index 34bd70f..0000000 Binary files a/LNZTreeViewDemo/Assets.xcassets/index_folder_indicator_open.imageset/index_folder_indicator_open.pdf and /dev/null differ diff --git a/LNZTreeViewDemo/Base.lproj/LaunchScreen.storyboard b/LNZTreeViewDemo/Base.lproj/LaunchScreen.storyboard deleted file mode 100644 index f83f6fd..0000000 --- a/LNZTreeViewDemo/Base.lproj/LaunchScreen.storyboard +++ /dev/null @@ -1,25 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/LNZTreeViewDemo/Base.lproj/Main.storyboard b/LNZTreeViewDemo/Base.lproj/Main.storyboard deleted file mode 100644 index ed603ca..0000000 --- a/LNZTreeViewDemo/Base.lproj/Main.storyboard +++ /dev/null @@ -1,72 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/LNZTreeViewDemo/Info.plist b/LNZTreeViewDemo/Info.plist deleted file mode 100644 index e92dd36..0000000 --- a/LNZTreeViewDemo/Info.plist +++ /dev/null @@ -1,45 +0,0 @@ - - - - - CFBundleDevelopmentRegion - $(DEVELOPMENT_LANGUAGE) - CFBundleExecutable - $(EXECUTABLE_NAME) - CFBundleIdentifier - $(PRODUCT_BUNDLE_IDENTIFIER) - CFBundleInfoDictionaryVersion - 6.0 - CFBundleName - $(PRODUCT_NAME) - CFBundlePackageType - APPL - CFBundleShortVersionString - 1.1.2 - CFBundleVersion - 9 - LSRequiresIPhoneOS - - UILaunchStoryboardName - LaunchScreen - UIMainStoryboardFile - Main - UIRequiredDeviceCapabilities - - armv7 - - UISupportedInterfaceOrientations - - UIInterfaceOrientationPortrait - UIInterfaceOrientationLandscapeLeft - UIInterfaceOrientationLandscapeRight - - UISupportedInterfaceOrientations~ipad - - UIInterfaceOrientationPortrait - UIInterfaceOrientationPortraitUpsideDown - UIInterfaceOrientationLandscapeLeft - UIInterfaceOrientationLandscapeRight - - - diff --git a/LNZTreeViewDemo/ViewController.swift b/LNZTreeViewDemo/ViewController.swift deleted file mode 100644 index 40e9d49..0000000 --- a/LNZTreeViewDemo/ViewController.swift +++ /dev/null @@ -1,151 +0,0 @@ -// -// ViewController.swift -// LNZTreeViewDemo -// -// Created by Giuseppe Lanza on 07/11/2017. -// Copyright © 2017 Giuseppe Lanza. All rights reserved. -// - -import UIKit -import LNZTreeView - -class CustomUITableViewCell: UITableViewCell -{ - override func layoutSubviews() { - super.layoutSubviews(); - - guard var imageFrame = imageView?.frame else { return } - - let offset = CGFloat(indentationLevel) * indentationWidth - imageFrame.origin.x += offset - imageView?.frame = imageFrame - } -} - - -class Node: NSObject, TreeNodeProtocol { - var identifier: String - var isExpandable: Bool { - return children != nil - } - - var children: [Node]? - - init(withIdentifier identifier: String, andChildren children: [Node]? = nil) { - self.identifier = identifier - self.children = children - } -} - -class ViewController: UIViewController { - - @IBOutlet weak var treeView: LNZTreeView! - var root = [Node]() - - override func viewDidLoad() { - super.viewDidLoad() - - treeView.register(CustomUITableViewCell.self, forCellReuseIdentifier: "cell") - - treeView.tableViewRowAnimation = .right - treeView.keyboardDismissMode = .none - generateRandomNodes() - treeView.resetTree() - } - - func generateRandomNodes() { - let depth = 3 - let rootSize = 30 - - var root: [Node]! - - var lastLevelNodes: [Node]? - for i in 0.. [Node] { - let nodes = Array(0.. Node in - return Node(withIdentifier: "\(arc4random()%UInt32.max)") - } - - return nodes - } - - override func didReceiveMemoryWarning() { - super.didReceiveMemoryWarning() - // Dispose of any resources that can be recreated. - } -} - -extension ViewController: LNZTreeViewDataSource { - func numberOfSections(in treeView: LNZTreeView) -> Int { - return 1 - } - - func treeView(_ treeView: LNZTreeView, numberOfRowsInSection section: Int, forParentNode parentNode: TreeNodeProtocol?) -> Int { - guard let parent = parentNode as? Node else { - return root.count - } - - return parent.children?.count ?? 0 - } - - func treeView(_ treeView: LNZTreeView, nodeForRowAt indexPath: IndexPath, forParentNode parentNode: TreeNodeProtocol?) -> TreeNodeProtocol { - guard let parent = parentNode as? Node else { - return root[indexPath.row] - } - - return parent.children![indexPath.row] - } - - func treeView(_ treeView: LNZTreeView, cellForRowAt indexPath: IndexPath, forParentNode parentNode: TreeNodeProtocol?, isExpanded: Bool) -> UITableViewCell { - - let node: Node - if let parent = parentNode as? Node { - node = parent.children![indexPath.row] - } else { - node = root[indexPath.row] - } - - let cell = treeView.dequeueReusableCell(withIdentifier: "cell", for: node, inSection: indexPath.section) - - if node.isExpandable { - if isExpanded { - cell.imageView?.image = #imageLiteral(resourceName: "index_folder_indicator_open") - } else { - cell.imageView?.image = #imageLiteral(resourceName: "index_folder_indicator") - } - } else { - cell.imageView?.image = nil - } - - cell.textLabel?.text = node.identifier - - return cell - } -} - -extension ViewController: LNZTreeViewDelegate { - func treeView(_ treeView: LNZTreeView, heightForNodeAt indexPath: IndexPath, forParentNode parentNode: TreeNodeProtocol?) -> CGFloat { - return 60 - } -} diff --git a/LNZTreeViewTests/Info.plist b/LNZTreeViewTests/Info.plist deleted file mode 100644 index 6c40a6c..0000000 --- a/LNZTreeViewTests/Info.plist +++ /dev/null @@ -1,22 +0,0 @@ - - - - - CFBundleDevelopmentRegion - $(DEVELOPMENT_LANGUAGE) - CFBundleExecutable - $(EXECUTABLE_NAME) - CFBundleIdentifier - $(PRODUCT_BUNDLE_IDENTIFIER) - CFBundleInfoDictionaryVersion - 6.0 - CFBundleName - $(PRODUCT_NAME) - CFBundlePackageType - BNDL - CFBundleShortVersionString - 1.0 - CFBundleVersion - 1 - - diff --git a/Package.swift b/Package.swift new file mode 100644 index 0000000..2183956 --- /dev/null +++ b/Package.swift @@ -0,0 +1,28 @@ +// swift-tools-version:5.5 +// The swift-tools-version declares the minimum version of Swift required to build this package. + +import PackageDescription + +let package = Package( + name: "LNZTreeView", + products: [ + // Products define the executables and libraries a package produces, and make them visible to other packages. + .library( + name: "LNZTreeView", + targets: ["LNZTreeView"]), + ], + dependencies: [ + // Dependencies declare other packages that this package depends on. + // .package(url: /* package url */, from: "1.0.0"), + ], + targets: [ + // Targets are the basic building blocks of a package. A target can define a module or a test suite. + // Targets can depend on other targets in this package, and on products in packages this package depends on. + .target( + name: "LNZTreeView", + dependencies: []), + .testTarget( + name: "LNZTreeViewTests", + dependencies: ["LNZTreeView"]), + ] +) diff --git a/README.md b/README.md index 83fd7e3..cda67a7 100644 --- a/README.md +++ b/README.md @@ -1,59 +1,3 @@ -[![Build Status](https://travis-ci.org/gringoireDM/LNZTreeView.svg?branch=master)](https://travis-ci.org/gringoireDM/LNZTreeView) [![codecov](https://codecov.io/gh/gringoireDM/LNZTreeView/branch/master/graph/badge.svg)](https://codecov.io/gh/gringoireDM/LNZTreeView) [![Swift](https://img.shields.io/badge/swift-4.2-orange.svg)](https://swift.org) +# LNZTreeView -# LNZTreeView -This is a swift implementation for iOS of a Tree View. A Tree View is a graphical representation of a tree. Each element (node) can have a number of sub elements (children). - -This particular implementation of TreeView organizes nodes and subnodes in rows and each node has an indentation that indicates the hierarchy of the element. A parent can be expanded or collapsed and each children can be a parent itself containing more sub nodes. - -![LNZTreeView](./LNZTreeView.gif) - -## Basic Principles -The LNZTreeView is a view built on top of UITableView. It proxies UITableView's delegate and datasource in order to have a hierarchical usage of those APIs. - -It can work with any entity conforming the protocol `TreeNode`. - -### Cells -Just like for UITableView it is possible to use Custom Cells in a `LNZTreeView`. You can register a cell class to be used for a specific cell Identifier by using the methods `register(_ cellClass: AnyClass?, forCellReuseIdentifier identifier: String)` and `register(_ nib: UINib?, forCellReuseIdentifier identifier: String)`. - -Just like for `UITableView` it is possible to obtain an `UITableViewCell` instance of the type previously specified with the register methods by using the `dequeueReusableCell(withIdentifier identifier: String, for indexPath: IndexPath) -> UITableViewCell` and `dequeueReusableCell(withIdentifier identifier: String) -> UITableViewCell?` methods. - -### Delegate and DataSource -The DataSource is the responsible of populating the TreeView according with your set of data. For efficiency, the LNZTreeView will query its data source if needed to get the right info to render the rows. All the indexPaths in the data source's methods are relative to the parameter **parentNode**. - -For example: -``` -root ---- element A ---- --- sub element A ---- --- sub element B ---- --- sub element C ---- element B -``` - -In this case an IndexPath with row 1 in **parentNode** equals to `element A`, will represent `sub element B`. The section of IndexPath just like for UITableView represent the index of the section to be rendered. If **parentNode** is nil, then the indexPath is relative to the root. - -Example: -``` -root A ---- element AA ---- --- sub element AA ---- --- sub element AB ---- --- sub element AC ---- element AB -root B -``` - -In this case an IndexPath with row 1 in **parentNode** equals to nil, will represent `root B`. - -All the indexPaths in the delegate works following the same logic. - -If selected a node will automatically expand if it is expandable or it will collapse if already expanded. The delegate will be aknowledged of this events by the methods `treeView(_ treeView: LNZTreeView, didExpandNodeAt indexPath: IndexPath, forParentNode parentNode: TreeNode?)` and `treeView(_ treeView: LNZTreeView, didCollapseNodeAt indexPath: IndexPath, forParentNode parentNode: TreeNode?)`. If the node is not expandable (or collapsable) the method `treeView(_ treeView: LNZTreeView, didSelectNodeAt indexPath: IndexPath, forParentNode parentNode: TreeNode?)` will be called. - -## Install - -You can install LNZTreeView via cocoapods - -``` -use_frameworks! -pod 'LNZTreeView' -``` +A description of this package. diff --git a/LNZTreeView/LNZTreeView.h b/Sources/LNZTreeView/LNZTreeView.h similarity index 100% rename from LNZTreeView/LNZTreeView.h rename to Sources/LNZTreeView/LNZTreeView.h diff --git a/LNZTreeView/LNZTreeView.swift b/Sources/LNZTreeView/LNZTreeView.swift similarity index 98% rename from LNZTreeView/LNZTreeView.swift rename to Sources/LNZTreeView/LNZTreeView.swift index 1fad0a6..f9e59d1 100644 --- a/LNZTreeView/LNZTreeView.swift +++ b/Sources/LNZTreeView/LNZTreeView.swift @@ -52,7 +52,7 @@ public class LNZTreeView: UIView { tableView.setEditing(editing, animated: animated) } - lazy var tableView: UITableView! = { + public lazy var tableView: UITableView! = { return UITableView(frame: frame, style: .plain) }() @@ -115,6 +115,10 @@ public class LNZTreeView: UIView { tableView.reloadData() } + public func reloadData() { + tableView.reloadData() + } + /** All the tree hierarchy will be lost and the dataSource will be reloaded from scratch. */ @@ -476,7 +480,7 @@ extension LNZTreeView: UITableViewDelegate { } public func tableView(_ tableView: UITableView, commit editingStyle: UITableViewCell.EditingStyle, forRowAt indexPath: IndexPath) { - guard var nodes = nodesForSection[indexPath.section], + guard let nodes = nodesForSection[indexPath.section], let indexInParent = self.indexInParent(forNodeAt: indexPath) else { fatalError("Something wrong here") } @@ -485,6 +489,7 @@ extension LNZTreeView: UITableViewDelegate { } public func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) { + tableView.deselectRow(at: indexPath, animated: false) guard var nodes = nodesForSection[indexPath.section], let indexInParent = self.indexInParent(forNodeAt: indexPath) else { fatalError("Something wrong here") @@ -502,7 +507,7 @@ extension LNZTreeView: UITableViewDelegate { tableView.endUpdates() } - tableView.reloadRows(at: [indexPath], with: .fade) + tableView.reloadRows(at: [indexPath], with: .none) if node.isExpanded { let range = closeNode(node, atIndex: indexPath.row, in: &nodes) diff --git a/LNZTreeView/LNZTreeViewDataSource.swift b/Sources/LNZTreeView/LNZTreeViewDataSource.swift similarity index 100% rename from LNZTreeView/LNZTreeViewDataSource.swift rename to Sources/LNZTreeView/LNZTreeViewDataSource.swift diff --git a/LNZTreeView/LNZTreeViewDelegate.swift b/Sources/LNZTreeView/LNZTreeViewDelegate.swift similarity index 99% rename from LNZTreeView/LNZTreeViewDelegate.swift rename to Sources/LNZTreeView/LNZTreeViewDelegate.swift index 3ed95f4..565d925 100644 --- a/LNZTreeView/LNZTreeViewDelegate.swift +++ b/Sources/LNZTreeView/LNZTreeViewDelegate.swift @@ -7,6 +7,7 @@ // import Foundation +import UIKit @objc public protocol LNZTreeViewDelegate { diff --git a/LNZTreeViewTests/LNZTreeViewTests.swift b/Tests/LNZTreeViewTests/LNZTreeViewTests.swift similarity index 100% rename from LNZTreeViewTests/LNZTreeViewTests.swift rename to Tests/LNZTreeViewTests/LNZTreeViewTests.swift diff --git a/LNZTreeViewTests/MockObjects/TestNode.swift b/Tests/LNZTreeViewTests/MockObjects/TestNode.swift similarity index 100% rename from LNZTreeViewTests/MockObjects/TestNode.swift rename to Tests/LNZTreeViewTests/MockObjects/TestNode.swift diff --git a/LNZTreeViewTests/MockObjects/TreeViewMockDataSource.swift b/Tests/LNZTreeViewTests/MockObjects/TreeViewMockDataSource.swift similarity index 100% rename from LNZTreeViewTests/MockObjects/TreeViewMockDataSource.swift rename to Tests/LNZTreeViewTests/MockObjects/TreeViewMockDataSource.swift diff --git a/LNZTreeViewTests/MockObjects/TreeViewMockDelegate.swift b/Tests/LNZTreeViewTests/MockObjects/TreeViewMockDelegate.swift similarity index 100% rename from LNZTreeViewTests/MockObjects/TreeViewMockDelegate.swift rename to Tests/LNZTreeViewTests/MockObjects/TreeViewMockDelegate.swift