diff --git a/Classes/GLIndexedCollectionViewCell.xib b/Classes/GLIndexedCollectionViewCell.xib index 02d25ab..9fbb4c7 100644 --- a/Classes/GLIndexedCollectionViewCell.xib +++ b/Classes/GLIndexedCollectionViewCell.xib @@ -1,11 +1,12 @@ - + - + + @@ -18,6 +19,7 @@ + diff --git a/GLTableCollectionView.xcodeproj/project.pbxproj b/GLTableCollectionView.xcodeproj/project.pbxproj index d0b3911..cff4715 100644 --- a/GLTableCollectionView.xcodeproj/project.pbxproj +++ b/GLTableCollectionView.xcodeproj/project.pbxproj @@ -152,15 +152,17 @@ attributes = { CLASSPREFIX = GL; LastSwiftUpdateCheck = 0800; - LastUpgradeCheck = 0810; + LastUpgradeCheck = 0900; ORGANIZATIONNAME = "Giulio Lombardo"; TargetAttributes = { 747CF8F81DE6EB010051A5FF = { CreatedOnToolsVersion = 8.0; + LastSwiftMigration = 0900; ProvisioningStyle = Manual; }; 747CF90C1DE6EB010051A5FF = { CreatedOnToolsVersion = 8.0; + LastSwiftMigration = 0900; ProvisioningStyle = Manual; TestTargetID = 747CF8F81DE6EB010051A5FF; }; @@ -282,7 +284,9 @@ 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_DIRECT_OBJC_ISA_USAGE = YES_ERROR; CLANG_WARN_DOCUMENTATION_COMMENTS = YES; @@ -290,7 +294,11 @@ 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_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_SUSPICIOUS_MOVES = YES; CLANG_WARN_UNREACHABLE_CODE = YES; @@ -315,7 +323,7 @@ GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; GCC_WARN_UNUSED_FUNCTION = YES; GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 8.0; + IPHONEOS_DEPLOYMENT_TARGET = 9.0; MTL_ENABLE_DEBUG_INFO = YES; ONLY_ACTIVE_ARCH = YES; SDKROOT = iphoneos; @@ -334,7 +342,9 @@ 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_DIRECT_OBJC_ISA_USAGE = YES_ERROR; CLANG_WARN_DOCUMENTATION_COMMENTS = YES; @@ -342,7 +352,11 @@ 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_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_SUSPICIOUS_MOVES = YES; CLANG_WARN_UNREACHABLE_CODE = YES; @@ -361,7 +375,7 @@ GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; GCC_WARN_UNUSED_FUNCTION = YES; GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 8.0; + IPHONEOS_DEPLOYMENT_TARGET = 9.0; MTL_ENABLE_DEBUG_INFO = NO; SDKROOT = iphoneos; SWIFT_OPTIMIZATION_LEVEL = "-Owholemodule"; @@ -400,13 +414,14 @@ GCC_WARN_UNUSED_LABEL = YES; GCC_WARN_UNUSED_PARAMETER = YES; INFOPLIST_FILE = GLTableCollectionView/Info.plist; - IPHONEOS_DEPLOYMENT_TARGET = 8.0; + IPHONEOS_DEPLOYMENT_TARGET = 9.0; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; PRODUCT_BUNDLE_IDENTIFIER = giuliolombardo.GLTableCollectionView; PRODUCT_NAME = "$(TARGET_NAME)"; PROVISIONING_PROFILE = ""; PROVISIONING_PROFILE_SPECIFIER = ""; - SWIFT_VERSION = 3.0; + SWIFT_SWIFT3_OBJC_INFERENCE = Default; + SWIFT_VERSION = 4.0; }; name = Debug; }; @@ -439,11 +454,12 @@ GCC_WARN_UNUSED_LABEL = YES; GCC_WARN_UNUSED_PARAMETER = YES; INFOPLIST_FILE = GLTableCollectionView/Info.plist; - IPHONEOS_DEPLOYMENT_TARGET = 8.0; + IPHONEOS_DEPLOYMENT_TARGET = 9.0; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; PRODUCT_BUNDLE_IDENTIFIER = giuliolombardo.GLTableCollectionView; PRODUCT_NAME = "$(TARGET_NAME)"; - SWIFT_VERSION = 3.0; + SWIFT_SWIFT3_OBJC_INFERENCE = Default; + SWIFT_VERSION = 4.0; }; name = Release; }; @@ -459,7 +475,8 @@ LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; PRODUCT_BUNDLE_IDENTIFIER = giuliolombardo.GLTableCollectionViewTests; PRODUCT_NAME = "$(TARGET_NAME)"; - SWIFT_VERSION = 3.0; + SWIFT_SWIFT3_OBJC_INFERENCE = Default; + SWIFT_VERSION = 4.0; TEST_HOST = "$(BUILT_PRODUCTS_DIR)/GLTableCollectionView.app/GLTableCollectionView"; }; name = Debug; @@ -476,7 +493,8 @@ LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; PRODUCT_BUNDLE_IDENTIFIER = giuliolombardo.GLTableCollectionViewTests; PRODUCT_NAME = "$(TARGET_NAME)"; - SWIFT_VERSION = 3.0; + SWIFT_SWIFT3_OBJC_INFERENCE = Default; + SWIFT_VERSION = 4.0; TEST_HOST = "$(BUILT_PRODUCTS_DIR)/GLTableCollectionView.app/GLTableCollectionView"; }; name = Release; diff --git a/GLTableCollectionView.xcodeproj/project.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings b/GLTableCollectionView.xcodeproj/project.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings new file mode 100644 index 0000000..0c67376 --- /dev/null +++ b/GLTableCollectionView.xcodeproj/project.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings @@ -0,0 +1,5 @@ + + + + + diff --git a/GLTableCollectionView.xcodeproj/xcshareddata/xcschemes/GLTableCollectionView.xcscheme b/GLTableCollectionView.xcodeproj/xcshareddata/xcschemes/GLTableCollectionView.xcscheme index a0e546a..4c4051b 100644 --- a/GLTableCollectionView.xcodeproj/xcshareddata/xcschemes/GLTableCollectionView.xcscheme +++ b/GLTableCollectionView.xcodeproj/xcshareddata/xcschemes/GLTableCollectionView.xcscheme @@ -1,6 +1,6 @@ - + - + + @@ -13,14 +14,11 @@ - - - - + @@ -33,8 +31,9 @@ - + + diff --git a/GLTableCollectionView/Base.lproj/Main.storyboard b/GLTableCollectionView/Base.lproj/Main.storyboard index a2ed304..814952e 100644 --- a/GLTableCollectionView/Base.lproj/Main.storyboard +++ b/GLTableCollectionView/Base.lproj/Main.storyboard @@ -1,11 +1,12 @@ - + - + + @@ -13,10 +14,11 @@ - + + @@ -34,8 +36,9 @@ - + + diff --git a/README.md b/README.md index 21ee4fc..0702b58 100644 --- a/README.md +++ b/README.md @@ -6,16 +6,16 @@ |**Branch**|**Status**| |:--------:|:--------:| -|master|[![BuddyBuild](https://dashboard.buddybuild.com/api/statusImage?appID=592889ed482e8d00016f99eb&branch=master&build=latest)](https://dashboard.buddybuild.com/apps/592889ed482e8d00016f99eb/build/latest?branch=master)| -|develop|[![BuddyBuild](https://dashboard.buddybuild.com/api/statusImage?appID=592889ed482e8d00016f99eb&branch=develop&build=latest)](https://dashboard.buddybuild.com/apps/592889ed482e8d00016f99eb/build/latest?branch=develop)| +|`master`|[![BuddyBuild](https://dashboard.buddybuild.com/api/statusImage?appID=592889ed482e8d00016f99eb&branch=master&build=latest)](https://dashboard.buddybuild.com/apps/592889ed482e8d00016f99eb/build/latest?branch=master)| +|`develop`|[![BuddyBuild](https://dashboard.buddybuild.com/api/statusImage?appID=592889ed482e8d00016f99eb&branch=develop&build=latest)](https://dashboard.buddybuild.com/apps/592889ed482e8d00016f99eb/build/latest?branch=develop)| -![Language](https://img.shields.io/badge/language-Swift%203.x-orange.svg) +![Language](https://img.shields.io/badge/language-Swift%204.x-orange.svg) ![Supported platforms](https://img.shields.io/badge/platform-iOS-lightgrey.svg) [![codebeat badge](https://codebeat.co/badges/5a29ccd4-fda0-45d1-ae57-e7158e01449a)](https://codebeat.co/projects/github.aaakk.us.kg-giulio92-gltablecollectionview) [![license](https://img.shields.io/github/license/giulio92/GLTableCollectionView.svg)](https://github.com/giulio92/GLTableCollectionView/blob/master/LICENSE.txt) ## What it is -GLTableCollectionView is a ready to use `UITableViewController` with a `UICollectionView` for each `UITableViewCell`, something like Netflix, Airbnb or the Apple's App Store are doing in their iOS apps. GLTableCollectionView is completely customizable in both his UITableView and UICollectionView parts since it has been made on the same Data Source and Delegate methods with no complicated additions. +GLTableCollectionView is a ready to use `UITableViewController` with a `UICollectionView` for each `UITableViewCell`, something like Netflix, Airbnb or the Apple's App Store are doing in their iOS apps. GLTableCollectionView is completely customizable in both his `UITableView` and `UICollectionView` parts since it has been made on the same Data Source and Delegate methods with no complicated additions. | | GLTableCollectionView | |----------|-------------------------------| @@ -47,10 +47,7 @@ var paginationEnabled: Bool = true

## Requirements -- Xcode 8.0+ -- Swift 3.0+ -- iOS 8.0+ -- [SwiftLint](https://github.com/realm/SwiftLint) (Optional, but _highly_ suggested) - -## Note -GLTableCollectionView is written using Swift 3.0 so it would only support iOS 8.0+ due to Swift 3 language compatibility, if you use Swift 2.0 in your project or you need iOS 7.0+ compatibility GLTableCollectionView will work too, but you **must** convert `UITableView` and `UICollectionView` Data Source and Delegate methods signatures before building your code or Xcode won't compile. +- Xcode 9.0+ +- Swift 4.0+ +- iOS 9.0+ +- [SwiftLint](https://github.com/realm/SwiftLint) (Optional, but _highly_ suggested) \ No newline at end of file